diff --git a/404.html b/404.html index f15b339d..a1c1e79c 100644 --- a/404.html +++ b/404.html @@ -20,8 +20,8 @@ 404 - - + + diff --git a/advancement/index.html b/advancement/index.html index 98931662..3b90b401 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -17,11 +17,11 @@ - Advancement Generator Minecraft 1.16, 1.17, 1.18 + Advancement Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index 6be93380..78bdfd9f 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -17,11 +17,11 @@ - Blockstate Generator Minecraft 1.16, 1.17, 1.18 + Blockstate Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/assets/cs.37c115ad.js b/assets/cs.37c115ad.js deleted file mode 100644 index 97cbe800..00000000 --- a/assets/cs.37c115ad.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse('{"advancement.criteria":"Kritéria","advancement.display":"Zobrazit","advancement.display.announce_to_chat":"Oznámit do chatu","advancement.display.background":"Pozadí","advancement.display.description":"Popisek","advancement.display.frame":"Rám","advancement.display.frame.challenge":"Výzva","advancement.display.frame.goal":"Cíl","advancement.display.frame.task":"Úkol","advancement.display.help":"Pokud je k dispozici, pokrok bude viditelný na kartách pokroku.","advancement.display.hidden":"Skrytý","advancement.display.icon":"Ikona","advancement.display.icon.item":"Ikona itemu","advancement.display.icon.nbt":"Ikona NBT","advancement.display.show_toast":"Ukaž toast","advancement.display.title":"Titul","advancement.parent":"Pokrok rodičů","advancement.rewards":"Odměna","advancement.rewards.experience":"Zkušenosti","advancement.rewards.function":"Funkce","advancement.rewards.loot":"Loot tabulky","advancement.rewards.recipes":"Recepty","advancement_trigger.bee_nest_destroyed":"Včelí hnízdo zničeno","advancement_trigger.bred_animals":"Chovaná zvířata","advancement_trigger.brewed_potion":"Uvařený lektvar","advancement_trigger.changed_dimension":"Změněný rozměr","advancement_trigger.channeled_lightning":"Kanálový blesk","advancement_trigger.construct_beacon":"Vytvořte maják","advancement_trigger.consume_item":"Konzumujte položku","advancement_trigger.cured_zombie_villager":"Vyléčený zombie vesničan","advancement_trigger.effects_changed":"Efekty změněny","advancement_trigger.enchanted_item":"Okouzlený předmět","advancement_trigger.enter_block":"Zadejte blok","advancement_trigger.entity_hurt_player":"Entita zranila hráče","advancement_trigger.entity_killed_player":"Entita zabila hráče","advancement_trigger.fall_from_height":"Pád z výšky","advancement_trigger.filled_bucket":"Naplněný kbelík","advancement_trigger.fishing_rod_hooked":"Rybářský prut zaháknut","advancement_trigger.hero_of_the_village":"Hrdina vesnice","advancement_trigger.impossible":"Nemožné","advancement_trigger.inventory_changed":"Inventář se změnil","advancement_trigger.item_durability_changed":"Trvanlivost itemu se změnila","advancement_trigger.item_used_on_block":"Item použitý na bloku","advancement_trigger.killed_by_crossbow":"Zabit lukem","advancement_trigger.levitation":"Levitace","advancement_trigger.location":"Lokace","advancement_trigger.nether_travel":"Nether cestování","advancement_trigger.placed_block":"Položit block","advancement_trigger.player_generates_container_loot":"Hráč generuje kořist lootu","advancement_trigger.player_hurt_entity":"Hráč zranil entitu","advancement_trigger.player_killed_entity":"Hráč zabil entitu","advancement_trigger.recipe_unlocked":"Recept odemčen","advancement_trigger.ride_entity_in_lava":"Jízda na entitě v lávě","advancement_trigger.safely_harvest_honey":"Bezpečně sklízejte med","advancement_trigger.shot_crossbow":"Střílet z kuše","advancement_trigger.slept_in_bed":"Spát v posteli","advancement_trigger.slide_down_block":"Posuňte blok dolů","advancement_trigger.summoned_entity":"Přivolat entitu","advancement_trigger.tame_animal":"Zkrotit zvíře","advancement_trigger.target_hit":"Cílový zásah","advancement_trigger.thrown_item_picked_up_by_entity":"Vhozená položka sebrala entitou","advancement_trigger.tick":"Klíště","advancement_trigger.used_ender_eye":"Použité ender oko","advancement_trigger.used_totem":"Použít totem","advancement_trigger.villager_trade":"Obchod s vesničanem","advancement_trigger.voluntary_exile":"Dobrovolný exil","attribute.generic_armor":"Brnění","attribute.generic_armor_toughness":"Tuhost brnění","attribute.generic_attack_damage":"Poškození při útoku","attribute.generic_attack_knockback":"Zpětný úder útoku","attribute.generic_attack_speed":"Rychlost útoku","attribute.generic_flying_speed":"Rychlost létaní","attribute.generic_follow_range":"Sledujte rozsah","attribute.generic_knockback_resistance":"Odolnost proti zpětnému rázu","attribute.generic_luck":"Štěstí","attribute.generic_max_health":"Max zdraví","attribute.generic_movement_speed":"Rychlost pohybu","attribute.horse.jump_strength":"Síla skoku","attribute.zombie.spawn_reinforcements":"Spawn posily","attribute_modifier.amount":"Množství","attribute_modifier.attribute":"Vlastnost","attribute_modifier.name":"Jméno","attribute_modifier.operation":"Operace","attribute_modifier.operation.addition":"Přidání","attribute_modifier.operation.multiply_base":"Násobit základ","attribute_modifier.operation.multiply_total":"Vynásobte celkem","attribute_modifier.slot":"Sloty","attribute_modifier.slot.list":"Násobit","attribute_modifier.slot.string":"Jediný","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimentální","badge.unstable":"Nestabilní","biome.carvers":"Řezbáři","biome.carvers.air":"Vzduch","biome.carvers.liquid":"Kapalina","biome.category":"Kategorie","biome.creature_spawn_probability":"Pravděpodobnost spawnování tvora","biome.depth":"Hloubka","biome.depth.help":"Zvyšuje nebo snižuje terén. Kladné hodnoty jsou považovány za pevninu a záporné za oceány.","biome.downfall":"Pád","biome.effects":"Efekt","biome.effects.additions_sound":"Zvuk dodatků","biome.effects.additions_sound.sound":"Zvuk","biome.effects.additions_sound.tick_chance":"Zaškrtněte šanci"}');export default e; -//# sourceMappingURL=cs.37c115ad.js.map diff --git a/assets/cs.37c115ad.js.map b/assets/cs.37c115ad.js.map deleted file mode 100644 index d95c61f9..00000000 --- a/assets/cs.37c115ad.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cs.37c115ad.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/cs.967a01eb.js b/assets/cs.967a01eb.js new file mode 100644 index 00000000..205e0caf --- /dev/null +++ b/assets/cs.967a01eb.js @@ -0,0 +1,2 @@ +var e=JSON.parse('{"advancement.criteria":"Kritéria","advancement.display":"Zobrazit","advancement.display.announce_to_chat":"Oznámit do chatu","advancement.display.background":"Pozadí","advancement.display.description":"Popisek","advancement.display.frame":"Rám","advancement.display.frame.challenge":"Výzva","advancement.display.frame.goal":"Cíl","advancement.display.frame.task":"Úkol","advancement.display.help":"Pokud je k dispozici, pokrok bude viditelný na kartách pokroku.","advancement.display.hidden":"Skrytý","advancement.display.icon":"Ikona","advancement.display.icon.item":"Ikona itemu","advancement.display.icon.nbt":"Ikona NBT","advancement.display.show_toast":"Ukaž toast","advancement.display.title":"Titul","advancement.parent":"Pokrok rodičů","advancement.rewards":"Odměna","advancement.rewards.experience":"Zkušenosti","advancement.rewards.function":"Funkce","advancement.rewards.loot":"Loot tabulky","advancement.rewards.recipes":"Recepty","advancement_trigger.bee_nest_destroyed":"Včelí hnízdo zničeno","advancement_trigger.bred_animals":"Rozmnožena zvířata","advancement_trigger.brewed_potion":"Uvařený lektvar","advancement_trigger.changed_dimension":"Změněný rozměr","advancement_trigger.channeled_lightning":"Cílený blesk","advancement_trigger.construct_beacon":"Vytvořen maják","advancement_trigger.consume_item":"Konzumována položka","advancement_trigger.cured_zombie_villager":"Vyléčený zombie vesničan","advancement_trigger.effects_changed":"Efekty změněny","advancement_trigger.enchanted_item":"Okouzlený předmět","advancement_trigger.enter_block":"Zadejte blok","advancement_trigger.entity_hurt_player":"Entita zranila hráče","advancement_trigger.entity_killed_player":"Entita zabila hráče","advancement_trigger.fall_from_height":"Pád z výšky","advancement_trigger.filled_bucket":"Naplněný kbelík","advancement_trigger.fishing_rod_hooked":"Rybářský prut zaháknut","advancement_trigger.hero_of_the_village":"Hrdina vesnice","advancement_trigger.impossible":"Nemožné","advancement_trigger.inventory_changed":"Inventář se změnil","advancement_trigger.item_durability_changed":"Trvanlivost itemu se změnila","advancement_trigger.item_used_on_block":"Item použitý na bloku","advancement_trigger.killed_by_crossbow":"Zabit lukem","advancement_trigger.levitation":"Levitace","advancement_trigger.location":"Lokace","advancement_trigger.nether_travel":"Procestováno netherem","advancement_trigger.placed_block":"Položen blok","advancement_trigger.player_generates_container_loot":"Hráč generuje kořist lootu","advancement_trigger.player_hurt_entity":"Hráč zranil entitu","advancement_trigger.player_killed_entity":"Hráč zabil entitu","advancement_trigger.recipe_unlocked":"Recept odemčen","advancement_trigger.ride_entity_in_lava":"Jízda na entitě v lávě","advancement_trigger.safely_harvest_honey":"Bezpečně sklizen med","advancement_trigger.shot_crossbow":"Střílet z kuše","advancement_trigger.slept_in_bed":"Spát v posteli","advancement_trigger.slide_down_block":"Sklouznuto po bloku","advancement_trigger.summoned_entity":"Přivolat entitu","advancement_trigger.tame_animal":"Zkrotit zvíře","advancement_trigger.target_hit":"Cílový zásah","advancement_trigger.thrown_item_picked_up_by_entity":"Vhozená položka sebrala entitou","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Použité ender oko","advancement_trigger.used_totem":"Použít totem","advancement_trigger.villager_trade":"Obchod s vesničanem","advancement_trigger.voluntary_exile":"Dobrovolný exil","attribute.generic_armor":"Brnění","attribute.generic_armor_toughness":"Tuhost brnění","attribute.generic_attack_damage":"Poškození při útoku","attribute.generic_attack_knockback":"Zpětný úder útoku","attribute.generic_attack_speed":"Rychlost útoku","attribute.generic_flying_speed":"Rychlost létaní","attribute.generic_follow_range":"Sledujte rozsah","attribute.generic_knockback_resistance":"Odolnost proti zpětnému rázu","attribute.generic_luck":"Štěstí","attribute.generic_max_health":"Maximální zdraví","attribute.generic_movement_speed":"Rychlost pohybu","attribute.horse.jump_strength":"Síla skoku","attribute.zombie.spawn_reinforcements":"Přivolat posily","attribute_modifier.amount":"Množství","attribute_modifier.attribute":"Vlastnost","attribute_modifier.name":"Jméno","attribute_modifier.operation":"Operace","attribute_modifier.operation.addition":"Přidání","attribute_modifier.operation.multiply_base":"Násobit základ","attribute_modifier.operation.multiply_total":"Vynásobte celkem","attribute_modifier.slot":"Sloty","attribute_modifier.slot.list":"Násobit","attribute_modifier.slot.string":"Jediný","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimentální","badge.unstable":"Nestabilní","biome.carvers":"Řezbáři","biome.carvers.air":"Vzduch","biome.carvers.liquid":"Kapalina","biome.category":"Kategorie","biome.creature_spawn_probability":"Pravděpodobnost spawnování tvora","biome.depth":"Hloubka","biome.depth.help":"Zvyšuje nebo snižuje terén. Kladné hodnoty jsou považovány za pevninu a záporné za oceány.","biome.downfall":"Pád","biome.effects":"Efekty","biome.effects.additions_sound":"Zvuk dodatků","biome.effects.additions_sound.sound":"Zvuk","biome.effects.additions_sound.tick_chance":"Šance za tick","biome.effects.ambient_sound":"Okolní zvuk","biome.effects.fog_color":"Barva mlhy","biome.effects.foliage_color":"Barva porostu","biome.effects.grass_color":"Barva trávy","biome.effects.grass_color_modifier":"Modifikátor barvy trávy","biome.effects.grass_color_modifier.dark_forest":"Temný les","biome.effects.grass_color_modifier.none":"Žádný","biome.effects.grass_color_modifier.swamp":"Bažina","biome.effects.mood_sound.block_search_extent":"Rozsah vyhledávání bloků","biome.effects.mood_sound.offset":"Odchylka","biome.effects.mood_sound.sound":"Zvuk","biome.effects.mood_sound.tick_delay":"Prodleva ticků","biome.effects.music":"Hudba","biome.effects.music.max_delay":"Maximální prodleva","biome.effects.music.min_delay":"Minimální prodleva","biome.effects.music.sound":"Zvuk","biome.effects.particle":"Částice","biome.effects.particle.options":"Možnosti","biome.effects.particle.options.type":"Typ částic","biome.effects.particle.probability":"Pravděpodobnost","biome.effects.sky_color":"Barva oblohy","biome.effects.water_color":"Barva vody","biome.effects.water_fog_color":"Barva podvodní mlhy","biome.player_spawn_friendly":"Příznivé pro zrození hráče","biome.precipitation":"Srážky","biome.precipitation.none":"Žádné","biome.precipitation.rain":"Déšť","biome.precipitation.snow":"Sníh","biome.scale":"Měřítko","biome.scale.help":"Vertikálně roztahuje terén. Nižší hodnoty znamenají rovinatější terén.","biome.spawners.creature":"Stvoření","biome.spawners.entry.type":"Typ","biome.spawners.misc":"Ostatní","biome.spawners.monster":"Monstra","biome.spawners.water_creature":"Vodní stvoření","biome.temperature":"Teplota","biome.temperature_modifier":"Modifikátor teploty","biome.temperature_modifier.frozen":"Zmrzlý","biome.temperature_modifier.none":"Žádný","block.block":"ID bloku","block.nbt":"NBT","block.state":"Stav bloku","block.tag":"Tag bloku"}');export default e; +//# sourceMappingURL=cs.967a01eb.js.map diff --git a/assets/cs.967a01eb.js.map b/assets/cs.967a01eb.js.map new file mode 100644 index 00000000..f6fb7da2 --- /dev/null +++ b/assets/cs.967a01eb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cs.967a01eb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/de.6c6a67f3.js b/assets/de.6c6a67f3.js new file mode 100644 index 00000000..04cf418f --- /dev/null +++ b/assets/de.6c6a67f3.js @@ -0,0 +1,2 @@ +var e=JSON.parse('{"advancement.criteria":"Kriterium","advancement.display":"Darstellung","advancement.display.announce_to_chat":"Im Chat bekanntgeben","advancement.display.background":"Hintergrund","advancement.display.description":"Beschreibung","advancement.display.frame":"Rahmen","advancement.display.frame.challenge":"Herausforderung","advancement.display.frame.goal":"Ziel","advancement.display.frame.task":"Aufgabe","advancement.display.help":"Wenn vorhanden, wird der Fortschritt in einem Fortschrittstab angezeigt.","advancement.display.hidden":"Versteckt","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon-Gegenstands","advancement.display.icon.nbt":"Icon-Gegenstandsdaten","advancement.display.show_toast":"Toast anzeigen","advancement.display.title":"Titel","advancement.parent":"Vorheriger Fortschritt","advancement.rewards":"Belohnungen","advancement.rewards.experience":"Erfahrungspunkte","advancement.rewards.function":"Funktion","advancement.rewards.loot":"Beutetabellen","advancement.rewards.recipes":"Rezepte","advancement_trigger.bee_nest_destroyed":"Bienennest zerstört","advancement_trigger.bred_animals":"Tiere gepaart","advancement_trigger.brewed_potion":"Trank gebraut","advancement_trigger.changed_dimension":"Dimension gewechselt","advancement_trigger.channeled_lightning":"Blitze Entladen","advancement_trigger.construct_beacon":"Leuchtfeuer gebaut","advancement_trigger.consume_item":"Gegenstand konsumieren","advancement_trigger.cured_zombie_villager":"Dorfbewohnerzombie geheilt","advancement_trigger.effects_changed":"Statuseffekte verändert","advancement_trigger.enchanted_item":"Gegenstand verzaubert","advancement_trigger.enter_block":"Block betreten","advancement_trigger.entity_hurt_player":"Spieler von Kreatur verletzt","advancement_trigger.entity_killed_player":"Spieler von Kreatur getötet","advancement_trigger.fall_from_height":"Sturz aus der Höhe","advancement_trigger.filled_bucket":"Eimer gefüllt","advancement_trigger.fishing_rod_hooked":"Etwas geangelt","advancement_trigger.hero_of_the_village":"Held des Dorfes","advancement_trigger.impossible":"Unmöglich","advancement_trigger.inventory_changed":"Inventar verändert","advancement_trigger.item_durability_changed":"Gegenstandshaltbarkeit verändert","advancement_trigger.item_used_on_block":"Gegenstand auf Block angewendet","advancement_trigger.killed_by_crossbow":"Durch Armbrust getötet","advancement_trigger.levitation":"Schwebekraft","advancement_trigger.location":"Ort betreten","advancement_trigger.nether_travel":"Nether-Reise","advancement_trigger.placed_block":"Block platziert","advancement_trigger.player_generates_container_loot":"Spieler generiert Beute für Behälter","advancement_trigger.player_hurt_entity":"Spieler verletzt Objekt","advancement_trigger.player_killed_entity":"Spieler tötet Objekt","advancement_trigger.recipe_unlocked":"Rezept freigeschaltet","advancement_trigger.safely_harvest_honey":"Sichere Honiggewinnung","advancement_trigger.shot_crossbow":"Armbrust abgefeuert","advancement_trigger.slept_in_bed":"In Bett geschlafen","advancement_trigger.slide_down_block":"Block herunterrutschen","advancement_trigger.summoned_entity":"Objekt beschworen","advancement_trigger.tame_animal":"Tier gezähmt","advancement_trigger.target_hit":"Ziel getroffen","advancement_trigger.thrown_item_picked_up_by_entity":"Objekt hebt fallengelassensen Gegenstand auf","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Enderauge verwendet","advancement_trigger.used_totem":"Totem verwendet","advancement_trigger.villager_trade":"Mit Dorfbewohner gehandelt","advancement_trigger.voluntary_exile":"Freiwilliges Exil","attribute.generic_armor":"Rüstung","attribute.generic_armor_toughness":"Rüstungshärte","attribute.generic_attack_damage":"Angriffsschaden","attribute.generic_attack_knockback":"Angriffsrückstoß","attribute.generic_attack_speed":"Angriffsgeschwindigkeit","attribute.generic_flying_speed":"Fluggeschwindigkeit","attribute.generic_follow_range":"Verfolgungsreichweite","attribute.generic_knockback_resistance":"Rückstoßwiderstand","attribute.generic_luck":"Glück","attribute.generic_max_health":"Maximale Gesundheit","attribute.generic_movement_speed":"Laufgeschwindigkeit","attribute.horse.jump_strength":"Sprungkraft","attribute.zombie.spawn_reinforcements":"Unterstützung rufen","attribute_modifier.amount":"Menge","attribute_modifier.attribute":"Attribut","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Basiswert multiplizieren","attribute_modifier.operation.multiply_total":"Gesamtwert multiplizieren","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Mehrere","badge.experimental":"Experimentell","badge.unstable":"Unsicher","biome.carvers":"Borer","biome.carvers.air":"Luft","biome.carvers.liquid":"Flüssigkeit","biome.category":"Kategorie","biome.creature_spawn_probability":"Spawnwahrscheinlichkeit des Wesens","biome.depth":"Tiefe","biome.downfall":"Niederschlag","biome.effects":"Effekte","biome.effects.additions_sound":"Zusätzliches Geräusch","biome.effects.additions_sound.sound":"Geräusch","biome.effects.additions_sound.tick_chance":"Wahrscheinlichkeit per Tick","biome.effects.ambient_sound":"Ungebungsgeräusch","biome.effects.fog_color":"Nebelfarbe","biome.effects.foliage_color":"Blattfarbe","biome.effects.grass_color":"Grasfarbe","biome.effects.grass_color_modifier":"Grasfabmodifikator","biome.effects.grass_color_modifier.dark_forest":"Dichter Wald","biome.effects.grass_color_modifier.none":"Keiner","biome.effects.grass_color_modifier.swamp":"Sumpf","biome.effects.mood_sound":"Stimmungsgeräusch","biome.effects.mood_sound.block_search_extent":"Blocksuchentfernung","biome.effects.mood_sound.offset":"Verschiebung","biome.effects.mood_sound.sound":"Geräusch","biome.effects.mood_sound.tick_delay":"Verzögerung in Ticks","biome.effects.music":"Musik","biome.effects.music.max_delay":"Maximale Verzögerung","biome.effects.music.min_delay":"Minimale Verzögerung","biome.effects.music.replace_current_music":"Aktuelle Musik ersetzen","biome.effects.music.sound":"Geräusch","biome.effects.particle":"Partikel","biome.effects.particle.options":"Optionen","biome.effects.particle.options.type":"Partikelart","biome.effects.particle.probability":"Wahrscheinlichkeit","biome.effects.sky_color":"Himmelsfarbe","biome.effects.water_color":"Wasserfarbe","biome.effects.water_fog_color":"Wassernebelfarbe","biome.features":"Merkmale","biome.features.entry":"Schritt %0%","biome.features.entry.entry":"Merkmal","biome.player_spawn_friendly":"Weltspawn möglich","biome.player_spawn_friendly.help":"Wenn „true“, wird der Weltspawn in diesem Biom bevorzugt.","biome.precipitation":"Witterung","biome.precipitation.none":"Keine","biome.precipitation.rain":"Regen","biome.precipitation.snow":"Schnee","biome.scale":"Skalierung","biome.spawn_costs":"Spawnkosten","biome.spawn_costs.charge":"Ladung","biome.spawn_costs.energy_budget":"Energiebudget","biome.spawners":"Spawner","biome.spawners.ambient":"Atmosphäre","biome.spawners.creature":"Kreatur","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Maximale Anzahl","biome.spawners.entry.minCount":"Minimale Anzahl","biome.spawners.entry.type":"Typ","biome.spawners.entry.weight":"Gewichtung","biome.spawners.misc":"Verschiedene","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Wasseratmosphäre","biome.spawners.water_creature":"Wasserkreatur","biome.starts":"Strukturanfänge","biome.starts.entry":"Struktur","biome.starts.help":"Liste konfigurierter Strukturmerkmale.","biome.surface_builder":"Oberflächengestalter","biome.temperature":"Temperatur","biome.temperature_modifier":"Temperaturmodifikator","biome.temperature_modifier.frozen":"Gefroren","biome.temperature_modifier.none":"Keiner","block.block":"Block-ID","block.nbt":"Blockdaten","block.state":"Blockzustand","block.tag":"Block-Aliasdaten","block_placer.column_placer.extra_size":"Extra Größe","block_placer.column_placer.min_size":"Minimale Größe","block_placer.type":"Typ","block_state.Name":"Name","block_state.Properties":"Eigenschaften","block_state_provider.randomized_int_state_provider.source":"Quelle","block_state_provider.randomized_int_state_provider.values":"Werte","block_state_provider.rotated_block_provider.state":"Zustand","block_state_provider.simple_state_provider.state":"Zustand","block_state_provider.type":"Typ","block_state_provider.weighted_state_provider.entries":"Einträge","block_state_provider.weighted_state_provider.entries.entry.data":"Zustand","block_state_provider.weighted_state_provider.entries.entry.weight":"Gewichtung","carver.config":"Konfiguration","carver.config.canyon.vertical_rotation":"Vertikale Ausrichtung","carver.config.debug_settings":"Debug-Einstellungen","carver.config.debug_settings.debug_mode":"Debug-Modus","carver.config.probability":"Wahrscheinlichkeit","carver.config.y":"Y","carver.type":"Typ","children":"Kinder","children.entry":"Eintrag","condition.alternative.terms":"Bedingungen","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Blockzustand","condition.condition":"Bedingung","condition.damage_source":"Schadensquelle","condition.entity_properties.entity":"Objekt","condition.entity_scores.entity":"Objekt","condition.entity_scores.scores":"Punktestände","condition.entry":"Prädikat","condition.inverted.term":"Bedingung","condition.item":"Gegenstand","condition.killed_by_player.inverse":"Invertiert","condition.list":"Mehrere","condition.location":"Ort","condition.location_check.offsetX":"X-Verschiebung","condition.location_check.offsetY":"Y-Verschiebung","condition.location_check.offsetZ":"Z-Verschiebung","condition.object":"Einfach","condition.random_chance.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.looting_multiplier":"Plüderungsmultiplikator","condition.reference.name":"Prädikatname","condition.table_bonus.chances":"Wahrscheinlichkeiten","condition.table_bonus.chances.entry":"Wahrscheinlichkeit","condition.table_bonus.enchantment":"Verzauberung","condition.time_check.period":"Zeitraum","condition.time_check.period.help":"Wenn vorhanden, wird der Restwert von der Zeit geteilt durch diesen Wert gebildet. Wenn beispielsweise dieser Wert auf 24000 gesetzt wird, wird der Zeitwert auf Tagen operieren.","condition.time_check.value":"Wert","condition.value_check.value":"Wert","condition.weather_check.raining":"Regen","condition.weather_check.thundering":"Gewitter","conditions":"Bedingungen","conditions.entry":"Bedingung","conditions.list":"Bedingungen","conditions.object":"Veraltet","copy_source.block_entity":"Blockobjekt","copy_source.killer":"Mörder","copy_source.killer_player":"Mörderspieler","copy_source.this":"Selbst","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Anzahl Bienen","criterion.bred_animals.child":"Kind","criterion.bred_animals.parent":"Mutter","criterion.bred_animals.partner":"Vater","criterion.brewed_potion.potion":"Trank","criterion.changed_dimension.from":"Von","criterion.changed_dimension.to":"Nach","criterion.channeled_lightning.victims":"Getroffene","criterion.channeled_lightning.victims.entry":"Objekt","criterion.conditions":"Bedingungen","criterion.construct_beacon.beacon_level":"Pyramidenhöhe","criterion.consume_item.item":"Gegenstand","criterion.cured_zombie_villager.villager":"Dorfbewohner","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Statuseffekte","criterion.enchanted_item.item":"Gegenstand","criterion.enchanted_item.levels":"Erfahrungslevel","criterion.enter_block.block":"Block","criterion.enter_block.state":"Zustände","criterion.entity_hurt_player.damage":"Schaden","criterion.entity_killed_player.entity":"Quellobjekt","criterion.entity_killed_player.killing_blow":"Todesschlag","criterion.filled_bucket.item":"Gegenstand","criterion.fishing_rod_hooked.entity":"Gezogenes Objekt","criterion.fishing_rod_hooked.item":"Gegenstand","criterion.hero_of_the_village.location":"Ort","criterion.inventory_changed.items":"Gegenstände","criterion.inventory_changed.items.entry":"Gegenstand","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Leere Slots","criterion.inventory_changed.slots.full":"Volle Slots","criterion.inventory_changed.slots.occupied":"Belegte Slots","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Haltbarkeit","criterion.item_durability_changed.item":"Gegenstand","criterion.item_used_on_block.item":"Gegenstand","criterion.item_used_on_block.location":"Ort","criterion.killed_by_crossbow.unique_entity_types":"Anzahl einzigartiger Objekttypen","criterion.killed_by_crossbow.victims":"Getroffene","criterion.killed_by_crossbow.victims.entry":"Objekt","criterion.levitation.distance":"Distanz","criterion.levitation.duration":"Dauer","criterion.location.location":"Ort","criterion.nether_travel.distance":"Distanz","criterion.nether_travel.entered":"Startort","criterion.nether_travel.exited":"Zielort","criterion.placed_block.block":"Block","criterion.placed_block.item":"Gegenstand","criterion.placed_block.location":"Ort","criterion.placed_block.state":"Zustände","criterion.player":"Spieler","criterion.player_generates_container_loot.loot_table":"Beutetabelle","criterion.player_hurt_entity.damage":"Schaden","criterion.player_hurt_entity.entity":"Opferobjekt","criterion.player_killed_entity.entity":"Opferobjekt","criterion.player_killed_entity.killing_blow":"Todesschlag","criterion.recipe_unlocked.recipe":"Rezept","criterion.rod":"Angel","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Gegenstand","criterion.shot_crossbow.item":"Gegenstand","criterion.slept_in_bed.location":"Ort","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Objekt","criterion.tame_animal.entity":"Tier","criterion.target_hit.projectile":"Geschoss","criterion.target_hit.shooter":"Schütze","criterion.target_hit.signal_strength":"Signalstärke","criterion.thrown_item_picked_up_by_entity.entity":"Objekt","criterion.thrown_item_picked_up_by_entity.item":"Gegenstand","criterion.trigger":"Auslöser","criterion.used_ender_eye.distance":"Distanz","criterion.used_totem.item":"Totem-Gegenstand","criterion.villager_trade.item":"Gekaufter Gegenstand","criterion.villager_trade.villager":"Dorfbewohner","criterion.voluntary_exile.location":"Ort","damage.blocked":"Geblocked","damage.dealt":"Schaden zugefügt","damage.source_entity":"Schadensverursacherobjekt","damage.taken":"Schaden genommen","damage.type":"Schadensart","damage_source.bypasses_armor":"Rüstung umgehen","damage_source.bypasses_invulnerability":"Leere","damage_source.bypasses_magic":"Hunger","damage_source.direct_entity":"Direktes Schadensquellobjekt","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Feuer","damage_source.is_lightning":"Blitzschlag","damage_source.is_magic":"Magie","damage_source.is_projectile":"Geschoss","damage_source.source_entity":"Schadensverurscherobjekt","decorator.carving_mask.step":"Generierungsschritt","decorator.cave_surface.floor_to_ceiling_search_range":"Suchradius","decorator.cave_surface.surface":"Oberfläche","decorator.config":"Konfiguration","decorator.count.count":"Anzahl","decorator.count_extra.count":"Anzahl","decorator.count_extra.extra_chance":"Zusätzliche Wahrscheinlichkeit","decorator.count_extra.extra_count":"Zusätzliche Anzahl","decorator.count_multilayer.count":"Anzahl","decorator.count_noise.above_noise":"Oberhalb des Rauschens","decorator.count_noise.below_noise":"Unterhalb des Rauschens","decorator.count_noise.noise_level":"Rauschlevel","decorator.count_noise_biased.noise_factor":"Rauschfaktor","decorator.count_noise_biased.noise_offset":"Rauschverschiebung","decorator.count_noise_biased.noise_to_count_ratio":"Verhältnis von Rauschen zu Anzahl","decorator.decorated.inner":"Innerer","decorator.decorated.outer":"Äußérer","decorator.depth_average.baseline":"Grundlinie","decorator.depth_average.spread":"Ausbreitung","decorator.glowstone.count":"Anzahl","decorator.type":"Typ","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biomquelle","dimension.overworld":"Oberwelt","dimension.the_end":"Das Ende","dimension.the_nether":"Der Nether","dimension.type":"Dimensionstyp","dimension.type.object":"Benutzerdefiniert","dimension.type.string":"Vorlage","dimension_type.ambient_light":"Umgebungslicht","dimension_type.ambient_light.help":"Wert zwischen 0 und 1.","dimension_type.bed_works":"Bett funktioniert","dimension_type.coordinate_scale":"Koordinatenskalierung","dimension_type.effects":"Effekte","dimension_type.effects.overworld":"Oberwelt","dimension_type.effects.the_end":"Das Ende","dimension_type.effects.the_nether":"Der Nether","dimension_type.fixed_time":"Feste Zeit","dimension_type.fixed_time.help":"Wenn dieser Wert gesetzt ist, ist die Zeit an diesem Wert für diese Dimension angehalten und die Sonne bzw. der Mond bleiben an derselben Stelle.","dimension_type.has_ceiling":"Hat Decke","dimension_type.has_raids":"Hat Überfälle","dimension_type.has_skylight":"Hat Tageslicht","dimension_type.infiniburn":"Dauerbrenner","dimension_type.logical_height":"Logische Höhe","dimension_type.name":"Name","dimension_type.natural":"Natürlich","dimension_type.natural.help":"Wenn „true“, erzeugen Nether-Portale zombifizierte Piglins. Wenn „false“, rotieren Kompasse und Uhren zufällig.","dimension_type.piglin_safe":"Piglinsicher","dimension_type.respawn_anchor_works":"Seelenanker funktioniert","dimension_type.ultrawarm":"Superwarm","dimension_type.ultrawarm.help":"Wenn „true“, verdampft Wasser und Schwämme trocknen.","distance.absolute":"Absolut","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Wasseraffinität","enchantment.bane_of_arthropods":"Nemesis der Gliederfüßer","enchantment.binding_curse":"Fluch der Bindung","enchantment.blast_protection":"Explosionsschutz","enchantment.channeling":"Entladung","enchantment.depth_strider":"Wasserläufer","enchantment.efficiency":"Effizienz","enchantment.enchantment":"Verzauberung","enchantment.feather_falling":"Federfall","enchantment.fire_aspect":"Verbrennung","enchantment.fire_protection":"Feuerschutz","enchantment.flame":"Flamme","enchantment.fortune":"Glück","enchantment.frost_walker":"Eisläufer","enchantment.impaling":"Harpune","enchantment.infinity":"Unendlichkeit","enchantment.knockback":"Rückstoß","enchantment.levels":"Level","enchantment.looting":"Plünderung","enchantment.loyalty":"Treue","enchantment.luck_of_the_sea":"Glück des Meeres","enchantment.lure":"Köder","enchantment.mending":"Reparatur","enchantment.multishot":"Mehrfachschuss","enchantment.piercing":"Durchschuss","enchantment.power":"Stärke","enchantment.projectile_protection":"Schusssicher","enchantment.protection":"Schutz","enchantment.punch":"Schlag","enchantment.quick_charge":"Schnellladen","enchantment.respiration":"Atmung","enchantment.riptide":"Sog","enchantment.sharpness":"Schärfe","enchantment.silk_touch":"Behutsamkeit","enchantment.smite":"Bann","enchantment.sweeping":"Schwungkraft","enchantment.thorns":"Dornen","enchantment.unbreaking":"Haltbarkeit","enchantment.vanishing_curse":"Fluch des Verschwindens","entity.distance":"Distanz","entity.effects":"Statuseffekte","entity.equipment":"Ausrüstung","entity.fishing_hook":"Angelhaken","entity.fishing_hook.in_open_water":"In offenem Gewässer","entity.flags":"Markierungen","entity.isBaby":"Baby","entity.isOnFire":"Brennt","entity.isSneaking":"Schleicht","entity.isSprinting":"Rennt","entity.isSwimming":"Schwimmt","entity.location":"Ort","entity.nbt":"NBT-Daten","entity.player":"Spieler","entity.targeted_entity":"Ausgewältes Objekt","entity.team":"Team","entity.type":"Objekt","entity.vehicle":"Gefährt","entity_source.killer":"Mörder","entity_source.killer_player":"Mörderspieler","entity_source.this":"Selbst","entry":"Eintrag","error":"Fehler","error.expected_boolean":"Wahrheitswer erwartet","error.expected_integer":"Ganzzahl erwartet","error.expected_json":"JSON erwartet","error.expected_list":"Array erwartet","error.expected_number":"Zahl erwartet","error.expected_object":"Objekt erwartet","error.expected_range":"Wertebereich erwartet","error.expected_string":"Zeichenkette erwartet","error.expected_uniform_int":"Gleichmäßige Verteilung erwartet","error.invalid_binomial":"Binomialverteilung wird in diesem Wertebereich nicht unterstützt","error.invalid_empty_list":"Array darf nicht leer sein","error.invalid_empty_string":"Zeichenkette darf nicht leer sein","error.invalid_enum_option":"Ungültige Option „%0%“","error.invalid_exact":"Dieser Wertebereich unterstützt keine Konstante","error.invalid_number_range.between":"Zahl zwischen %0% und %1% erwartet","error.invalid_pattern":"Zeichenkette ist ungültig: %0%","error.recipe.invalid_key":"Schlüssel darf nur ein einzelnes Zeichen sein","error.separation_smaller_spacing":"Aufteilung muss kleiner als Abstand sein","false":"Falsch","feature.bamboo.probability":"Wahrscheinlichkeit","feature.basalt_columns.height":"Höhe","feature.basalt_columns.reach":"Reichweite","feature.block_pile.state_provider":"Zustanderzeuger","feature.config":"Konfiguration","feature.decorated.decorator":"Dekorator","feature.decorated.feature":"Merkmal","feature.delta_feature.contents":"Inhalte","feature.delta_feature.rim":"Rand","feature.delta_feature.rim_size":"Randgröße","feature.delta_feature.size":"Größe","feature.disk.half_height":"Halbe Höhe","feature.disk.radius":"Radius","feature.disk.state":"Zustand","feature.disk.targets":"Ziele","feature.disk.targets.entry":"Zustand","feature.emerald_ore.state":"Zustand","feature.emerald_ore.target":"Ziel","feature.end_gateway.exact":"Exakt","feature.end_gateway.exit":"Ausgang","feature.end_spike.crystal_beam_target":"Kristallstrahlziel","feature.end_spike.crystal_invulnerable":"Endkristall Unzerstörbar","feature.end_spike.spikes":"Zacken","feature.end_spike.spikes.entry":"Zacken","feature.end_spike.spikes.entry.centerX":"X Mitte","feature.end_spike.spikes.entry.centerZ":"Z Mitte","feature.end_spike.spikes.entry.guarded":"Eisengitterkäfig","feature.end_spike.spikes.entry.height":"Höhe","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Höhe","feature.fill_layer.state":"Zustand","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Blackplatzierer","feature.flower.can_replace":"Kann Ersetzen","feature.flower.need_water":"Benötigt Wasser","feature.flower.project":"Projizieren","feature.flower.state_provider":"Zustandserzeuger","feature.flower.tries":"Versuche","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X Ausbreitung","feature.flower.yspread":"Y Ausbreitung","feature.flower.zspread":"Z Ausbreitung","feature.forest_rock.state":"Zustand","feature.huge_brown_mushroom.cap_provider":"Schirmerzeuger","feature.huge_brown_mushroom.foliage_radius":"Schirmradius","feature.huge_brown_mushroom.stem_provider":"Stielerzeuger","feature.huge_fungus.decor_state":"Dekoration","feature.huge_fungus.hat_state":"Schirm","feature.huge_fungus.planted":"Gepflanzt","feature.huge_fungus.stem_state":"Stiel","feature.huge_fungus.valid_base_block":"Erlaubter Untergrund","feature.huge_red_mushroom.cap_provider":"Schirmerzeuger","feature.huge_red_mushroom.foliage_radius":"Schirmradius","feature.huge_red_mushroom.stem_provider":"Stielerzeuger","feature.ice_patch.half_height":"Halbe Höhe","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"Zustand","feature.ice_patch.targets":"Ziele","feature.ice_patch.targets.entry":"Zustand","feature.iceberg.state":"Zustand","feature.lake.state":"Zustand","feature.nether_forest_vegetation.state_provider":"Zustanderzeuger","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"Zustand","feature.netherrack_replace_blobs.target":"Ziel","feature.no_surface_ore.size":"Größe","feature.no_surface_ore.state":"Zustand","feature.no_surface_ore.target":"Ziel","feature.object":"Benutzerdefiniert","feature.ore.size":"Größe","feature.random_boolean_selector.feature_false":"Merkmal 1","feature.random_boolean_selector.feature_true":"Merkmal 2","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Blockplatzierer","feature.random_patch.can_replace":"Kann Ersetzen","feature.random_patch.need_water":"Benötigt Wasser","feature.random_patch.project":"Projizieren","feature.random_patch.state_provider":"Zustanderzeuger","feature.random_patch.tries":"Versuche","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X Ausbreitung","feature.random_patch.yspread":"Y Ausbreitung","feature.random_patch.zspread":"Z Ausbreitung","feature.random_selector.default":"Standard","feature.random_selector.features":"Merkmale","feature.random_selector.features.entry":"Merkmal","feature.random_selector.features.entry.chance":"Wahrscheinlichkeit","feature.random_selector.features.entry.feature":"Merkmal","feature.sea_pickle.count":"Anzahl","feature.seagrass.probability":"Wahrscheinlichkeit","feature.simple_block.place_in":"Innerhalb platzieren","feature.simple_block.place_in.entry":"Zustand","feature.simple_block.place_on":"Platzieren auf","feature.simple_block.place_on.entry":"Zustand","feature.simple_block.place_under":"Unterhalb platzieren","feature.simple_block.place_under.entry":"Zustand","feature.simple_block.to_place":"Zu platzieren","feature.simple_random_selector.features":"Merkmale","feature.simple_random_selector.features.entry":"Merkmal","feature.spring_feature.hole_count":"Menge Löcher","feature.spring_feature.required_block_below":"Benötigt block unterhalb","feature.spring_feature.rock_count":"Menge Fels","feature.spring_feature.state":"Zustand","feature.spring_feature.valid_blocks":"Erlaubte Blöcke","feature.string":"Referenz","feature.tree.decorators":"Dekoratoren","feature.tree.decorators.entry":"Baumdekorator","feature.tree.foliage_placer":"Blattplatzierer","feature.tree.heightmap":"Höhenfeld","feature.tree.ignore_vines":"Ranken ignorieren","feature.tree.leaves_provider":"Blattblockerzeuger","feature.tree.max_water_depth":"Maximale Wassertiefe","feature.tree.minimum_size":"Minimale Größe","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Untere Größe","feature.tree.minimum_size.middle_size":"Mittlere Größe","feature.tree.minimum_size.min_clipped_height":"Minimale Größe","feature.tree.minimum_size.type":"Minimale Größe","feature.tree.minimum_size.upper_limit":"Obere Grenze","feature.tree.minimum_size.upper_size":"Obere Größe","feature.tree.trunk_placer":"Stammplatzierer","feature.tree.trunk_provider":"Stammblockerzeuger","feature.type":"Typ","fluid.fluid":"Flüssigkeits-ID","fluid.state":"Flüssigkeitszustand","fluid.tag":"Flüssigkeitsaliasdaten","fluid_state.Name":"Name","fluid_state.Properties":"Eigenschaften","foliage_placer.crown_height":"Kronenhöhe","foliage_placer.height":"Höhe","foliage_placer.offset":"Verschiebung","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Stammhöhe","foliage_placer.type":"Typ","function.apply_bonus.enchantment":"Verzauberung","function.apply_bonus.formula":"Formel","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial mit Bonusmenge","function.apply_bonus.formula.ore_drops":"Erzdrops","function.apply_bonus.formula.uniform_bonus_count":"Gleichmäßige Verteilung mit Bonusmenge","function.apply_bonus.parameters":"Parameter","function.apply_bonus.parameters.bonusMultiplier":"Muliplikator","function.apply_bonus.parameters.extra":"Bonusmenge","function.apply_bonus.parameters.probability":"Wahrscheinlichkeit","function.copy_name.source":"Quelle","function.copy_nbt.ops":"NBT-Operationen","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Quelle","function.copy_state.block":"Block","function.copy_state.properties":"Eigenschaften","function.copy_state.properties.entry":"Eigenschaft","function.enchant_randomly.enchantments":"Optionale Verzauberungen","function.enchant_randomly.enchantments.entry":"Verzauberung","function.enchant_with_levels.levels":"Level","function.enchant_with_levels.treasure":"Schatz","function.exploration_map.decoration":"Dekoration","function.exploration_map.destination":"Ziel","function.exploration_map.search_radius":"Suchradius (Chunks)","function.exploration_map.skip_existing_chunks":"Bereits generierte Chunks ignorieren","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Objekt","function.function":"Funktion","function.limit_count.limit":"Grenze","function.looting_enchant.count":"Anzahl","function.looting_enchant.limit":"Grenze","function.set_attributes.modifiers":"Modifikatoren","function.set_attributes.modifiers.entry":"Modifikator","function.set_contents.entries":"Inhalte","function.set_contents.entries.entry":"Eintrag","function.set_count.count":"Anzahl","function.set_damage.damage":"Schaden","function.set_data.data":"Daten","function.set_loot_table.name":"Beutetabellenname","function.set_loot_table.seed":"Seed","function.set_lore.entity":"Objekt","function.set_lore.lore":"Beschreibung","function.set_lore.lore.entry":"Zeile","function.set_lore.replace":"Ersetzen","function.set_name.entity":"Objekt","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Statuseffekte","function.set_stew_effect.effects.entry":"Statuseffekt","function.set_stew_effect.effects.entry.duration":"Wirkungsdauer","function.set_stew_effect.effects.entry.type":"Effekt","functions":"Funktionen","functions.entry":"Funktion","gamemode.adventure":"Abenteuer","gamemode.creative":"Kreativ","gamemode.spectator":"Zuschauer","gamemode.survival":"Überleben","generation_step.air":"Luft","generation_step.liquid":"Flüssigkeit","generator.biome_source.altitude_noise":"Höhenrauschen","generator.biome_source.biome":"Biom","generator.biome_source.biomes":"Biome","generator.biome_source.humidity_noise":"Feuchtigkeitsrauschen","generator.biome_source.large_biomes":"Große Biome","generator.biome_source.legacy_biome_init_layer":"Veraltete Biominitierungsschicht","generator.biome_source.preset":"Biomvorlage","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Skalierung","generator.biome_source.seed":"Biom-Seed","generator.biome_source.temperature_noise":"Temperaturrauschen","generator.biome_source.type":"Biomquelle","generator.biome_source.weirdness_noise":"Merkwürdigkeitsrauschen","generator.seed":"Dimensions-Seed","generator.settings":"Generatoreinstellungen","generator.settings.biome":"Biom","generator.settings.lakes":"Seen","generator.settings.layers":"Schichten","generator.settings.layers.entry":"Schicht","generator.settings.layers.entry.block":"Block-ID","generator.settings.layers.entry.height":"Höhe","generator.settings.object":"Benutzerdefiniert","generator.settings.presets.amplified":"Zerküftet","generator.settings.presets.caves":"Höhlen","generator.settings.presets.end":"Ende","generator.settings.presets.floating_islands":"Schwebende Inseln","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Oberwelt","generator.settings.string":"Vorlage","generator.settings.structures":"Strukturen","generator.settings.structures.stronghold":"Festung","generator.settings.structures.stronghold.count":"Menge","generator.settings.structures.stronghold.distance":"Distanz","generator.settings.structures.stronghold.spread":"Ausbreitung","generator.settings.structures.structures":"Strukturen","generator.type":"Generatortyp","generator_biome.biome":"Biom","generator_biome.parameters":"Parameter","generator_biome.parameters.altitude":"Höhenlage","generator_biome.parameters.help":"Diese Parameter entscheiden die Platzierung des Bioms. Jedes Biom braucht eine einzigartige Kombination. Biome mit ähnlichen Werten generieren näher beieinander.","generator_biome.parameters.humidity":"Feuchtigkeit","generator_biome.parameters.offset":"Versatz","generator_biome.parameters.temperature":"Temperatur","generator_biome.parameters.weirdness":"Merkwürdigkeit","generator_biome_noise.amplitudes":"Amplituden","generator_biome_noise.amplitudes.entry":"Oktave %0%","generator_biome_noise.firstOctave":"Erste Oktave","generator_structure.salt":"Salt","generator_structure.separation":"Aufteilung","generator_structure.separation.help":"Die minimale Distanz in Chunks zwischen zwei Strukturen. Muss kleiner als Abstand sein.","generator_structure.spacing":"Abstand","generator_structure.spacing.help":"Die durchschnittliche Distanz swischen zwei Strukturen dieses Typs.","heightmap_type.MOTION_BLOCKING":"Bewegungsblockierend","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Bewegungsblockierend (Blätter ignorieren)","heightmap_type.OCEAN_FLOOR":"Ozeangrund","heightmap_type.OCEAN_FLOOR_WG":"Ozeangrund (Weltgenerierung)","heightmap_type.WORLD_SURFACE":"Weltoberfläche","heightmap_type.WORLD_SURFACE_WG":"Weltoberfläche (Weltgenerierung)","hide_source":"Quelltext verstecken","item.count":"Menge","item.durability":"Haltbarkeit","item.enchantments":"Verzauberungen","item.enchantments.entry":"Verzauberung","item.item":"Gegenstands-ID","item.nbt":"Gegenstandsdaten","item.potion":"Trank","item.tag":"Gegenstandsaliasdaten","key.advancements":"Fortschritte","key.attack":"Angreifen/Abbauen","key.back":"Rückwärts laufen","key.chat":"Chat öffnen","key.command":"Befehlszeile öffnen","key.drop":"Ausgewählten Gegenstand fallen lassen","key.forward":"Vorwärts laufen","key.fullscreen":"Vollbild wechseln","key.hotbar.1":"Schnellzugriff 1","key.hotbar.2":"Schnellzugriff 2","key.hotbar.3":"Schnellzugriff 3","key.hotbar.4":"Schnellzugriff 4","key.hotbar.5":"Schnellzugriff 5","key.hotbar.6":"Schnellzugriff 6","key.hotbar.7":"Schnellzugriff 7","key.hotbar.8":"Schnellzugriff 8","key.hotbar.9":"Schnellzugriff 9","key.inventory":"Inventar öffnen/schließen","key.jump":"Springen","key.left":"Links","key.loadToolbarActivator":"Schnellzugriffsleiste laden","key.pickItem":"Block auswählen","key.playerlist":"Spieler auflisten","key.right":"Rechts","key.saveToolbarActivator":"Schnellzugriffsleiste speichern","key.screenshot":"Screenshot","key.smoothCamera":"Kameraverhalten wechseln","key.sneak":"Schleichen","key.spectatorOutlines":"Spieler hervorheben (Zuschauer)","key.sprint":"Sprinten","key.swapOffhand":"Gegenstand mit Zweithand tauschen","key.togglePerspective":"Perspektive wechseln","key.use":"Benutzen/Platzieren","location.biome":"Biom","location.block":"Block","location.dimension":"Dimension","location.feature":"Merkmal","location.fluid":"Flüssigkeit","location.light":"Licht","location.light.light":"Sichtbares Lichtlevel","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Verraucht","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Blockeigenschaften","loot_condition_type.damage_source_properties":"Schadensquelle","loot_condition_type.entity_properties":"Objekteigenschaften","loot_condition_type.entity_scores":"Objektpunktestände","loot_condition_type.inverted":"Invertiert","loot_condition_type.killed_by_player":"Getötet","loot_condition_type.location_check":"Ort","loot_condition_type.match_tool":"Werkzeugeigenschaften","loot_condition_type.random_chance":"Zufällig","loot_condition_type.random_chance_with_looting":"Zufällig mit Plünderung","loot_condition_type.reference":"Referenz","loot_condition_type.survives_explosion":"Überlebt Explosion","loot_condition_type.table_bonus":"Tabellenbonus","loot_condition_type.time_check":"Zeitüberprüfung","loot_condition_type.weather_check":"Wetterüberprüfung","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Beutetabellenname","loot_entry.quality":"Qualität","loot_entry.tag.expand":"Erweitern","loot_entry.tag.expand.help":"Wenn „false“ werden alle Gegenstände aus den Aliasdaten verwendet. Wenn „false“ wird ein Gegenstand aus den Aliasdaten zufällig ausgewählt.","loot_entry.tag.name":"Name des Gegenstandsaliases","loot_entry.type":"Typ","loot_entry.weight":"Gewichtung","loot_function_type.apply_bonus":"Bonus anwenden","loot_function_type.copy_name":"Namen kopieren","loot_function_type.copy_nbt":"NBT-Daten kopieren","loot_function_type.copy_state":"Blockzustände kopieren","loot_function_type.enchant_randomly":"Zufällig verzaubern","loot_function_type.enchant_with_levels":"Mit Leveln verzaubern","loot_function_type.exploration_map":"Entdeckerkarteneigenschaften","loot_function_type.explosion_decay":"Explosionsverfall","loot_function_type.fill_player_head":"Spielerkopf erzeugen","loot_function_type.furnace_smelt":"Ofen schmelzen","loot_function_type.limit_count":"Stapelgröße limitieren","loot_function_type.looting_enchant":"Plünderungsverzauberung","loot_function_type.set_attributes":"Attribute setzen","loot_function_type.set_contents":"Inhalte setzen","loot_function_type.set_count":"Anzahl setzen","loot_function_type.set_damage":"Schaden setzen","loot_function_type.set_data":"Daten setzen","loot_function_type.set_loot_table":"Beutetabelle setzen","loot_function_type.set_lore":"Gegenstandsbeschreibung setzen","loot_function_type.set_name":"Name setzen","loot_function_type.set_nbt":"NBT setzen","loot_function_type.set_stew_effect":"Suppeneffekt setzen","loot_pool.bonus_rolls":"Bonusausschüttungen","loot_pool.entries":"Einträge","loot_pool.entries.entry":"Eintrag","loot_pool.rolls":"Ausschüttungen","loot_pool.rolls.help":"Wie oft ein Eintrag aus diesem Beutetopf ausgewält wird.","loot_pool_entry_type.alternatives":"Alternativen","loot_pool_entry_type.alternatives.help":"Wält den ersten Eintrag aus der Liste aus, dessen Bedingung erfüllt ist.","loot_pool_entry_type.dynamic":"Dynamisch","loot_pool_entry_type.dynamic.help":"Erzeugt blockspezifischen Loot.","loot_pool_entry_type.empty":"Leer","loot_pool_entry_type.empty.help":"Ein leerer Eintrag. Kann verwendet werden, um einen Beutetopf zu einer gewissen Wahrscheinlichkeit nichts ausschütten zu lassen.","loot_pool_entry_type.group":"Gruppe","loot_pool_entry_type.group.help":"Grupiert mehrere Einträge und führt alle Einträge aus, wenn die eigene Bedingung erfüllt ist.","loot_pool_entry_type.item":"Gegenstand","loot_pool_entry_type.item.help":"Ein Eintrag mit einem einzelnen Gegenstand.","loot_pool_entry_type.loot_table":"Beutetabelle","loot_pool_entry_type.loot_table.help":"Ein Eintrag, der eine andere Beutetabelle ausschüttet.","loot_pool_entry_type.sequence":"Sequenz","loot_pool_entry_type.sequence.help":"Schüttet alle Kindeinträge aus, bis die Bedingung eines Eintrages fehlschlägt.","loot_pool_entry_type.tag":"Gegenstandsaliasdaten","loot_pool_entry_type.tag.help":"Ein Eintrag, der aus einem Gegenstandsaliasdatum Gegenstände ausschüttet.","loot_table.pools":"Beutetöpfe","loot_table.pools.entry":"Beutetopf","luck_based":"Glücksbasiert","nbt_operation.op":"Operation","nbt_operation.op.append":"Anhängen","nbt_operation.op.merge":"Zusammenfügen","nbt_operation.op.replace":"Ersetzen","nbt_operation.source":"Quelle","nbt_operation.target":"Ziel","noise_settings.bedrock_floor_position":"Grundgestein-Bodenpositionierung","noise_settings.bedrock_floor_position.help":"Position des Grundgesteinbodens. Höhere Zahlen versetzen ihn nach oben.","noise_settings.bedrock_roof_position":"Grundgestein-Deckenpositionierung","noise_settings.bedrock_roof_position.help":"Positionierung der Grundgesteindecke relativ zur Höhe der Dimension. Höhere Zahlen versetzen die Decke nach unten.","noise_settings.biome":"Biom","noise_settings.default_block":"Standardblock","noise_settings.default_fluid":"Standardflüssigkeit","noise_settings.disable_mob_generation":"Mobgenerieung deaktivieren","noise_settings.disable_mob_generation.help":"Wenn „true“, werden keine Kreaturen während der Weltgenerierung erzeugt.","noise_settings.name":"Name","noise_settings.noise":"Rauscheinstellungen","noise_settings.noise.amplified":"Zerklüftet","noise_settings.noise.bottom_slide":"Untere Schicht","noise_settings.noise.bottom_slide.offset":"Verschiebung der unteren Schicht","noise_settings.noise.bottom_slide.size":"Größe der unteren Schicht","noise_settings.noise.bottom_slide.target":"Ziel der unteren Schicht","noise_settings.noise.density_factor":"Dichtigkeitsfaktor","noise_settings.noise.density_offset":"Dichtigkeitsverschiebung","noise_settings.noise.height":"Höhe","noise_settings.noise.island_noise_override":"Insel-Rauschüberschreibung","noise_settings.noise.island_noise_override.help":"Wenn „true“, wird das Terrain wie im Ende mit einer größeren Insel in der Mitte und mehr Inseln weiter weg generiert.","noise_settings.noise.random_density_offset":"Zufällige Dichtigkeitsverschiebung","noise_settings.noise.sampling":"Abtastung","noise_settings.noise.sampling.xz_factor":"XZ-Faktor","noise_settings.noise.sampling.xz_scale":"XZ-Skalierung","noise_settings.noise.sampling.y_factor":"Y-Faktor","noise_settings.noise.sampling.y_scale":"Y-Skalierung","noise_settings.noise.simplex_surface_noise":"Simplex-Oberflächenrauschen","noise_settings.noise.size_horizontal":"Horizontale Größe","noise_settings.noise.size_vertical":"Vertikale Größe","noise_settings.noise.top_slide":"Obere Schicht","noise_settings.noise.top_slide.offset":"Verschiebung der oberen Schicht","noise_settings.noise.top_slide.size":"Größe der oberen Schicht","noise_settings.noise.top_slide.target":"Ziel der oberen Schicht","noise_settings.sea_level":"Meeresspiegel","noise_settings.structures":"Strukturen","noise_settings.structures.stronghold":"Festung","noise_settings.structures.stronghold.count":"Anzahl","noise_settings.structures.stronghold.distance":"Distanz","noise_settings.structures.stronghold.spread":"Ausbreitung","noise_settings.structures.structures":"Strukturen","player.advancements":"Fortschritte","player.advancements.entry":"Fortschritt","player.gamemode":"Spielmodus","player.level":"Erfahrungslevel","player.recipes":"Rezepte","player.stats":"Statistiken","player.stats.entry":"Statistik","pos_rule_test.always_true":"Immer „true“","pos_rule_test.axis":"Achse","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Achsenangepasste lineare Position","pos_rule_test.linear_pos":"Lineare Position","pos_rule_test.max_chance":"Maximale Wahrscheinlichkeit","pos_rule_test.max_dist":"Maximale Distanz","pos_rule_test.min_chance":"Minimale Wahrscheinlichkeit","pos_rule_test.min_dist":"Minimale Distanz","pos_rule_test.predicate_type":"Typ","processor.block_age.mossiness":"Moosigkeit","processor.block_ignore.blocks":"Blöcke","processor.block_ignore.blocks.entry":"Zustand","processor.block_rot.integrity":"Integrität","processor.gravity.heightmap":"Höhenfeld","processor.gravity.offset":"Verschiebung","processor.processor_type":"Typ","processor.rule.rules":"Regeln","processor.rule.rules.entry":"Regel","processor_list.processors":"Prozessoren","processor_list.processors.entry":"Prozessor","processor_rule.input_predicate":"Eingabenprädikat","processor_rule.location_predicate":"Ortsprädikat","processor_rule.output_nbt":"Ausgabe-NBT","processor_rule.output_state":"Ausgabeprädikat","processor_rule.position_predicate":"Positionsprädikat","processors.object":"Benutzerdefiniert","processors.string":"Referenz","range.binomial":"Binomialverteilung","range.max":"Maximum","range.min":"Minimum","range.n":"n","range.number":"Exakte Zahl","range.object":"Wertebereich","range.p":"p","range.uniform":"Gleichmäßige Verteilung","requirements":"Vorraussetzungen","rule_test.always_true":"Immer  „true“","rule_test.block":"Block","rule_test.block_match":"Blockvergleich","rule_test.block_state":"Zustand","rule_test.blockstate_match":"Blockzustandsvergleich","rule_test.predicate_type":"Typ","rule_test.probability":"Wahrscheinlichkeit","rule_test.random_block_match":"Zufälliger Blockvergleich","rule_test.random_blockstate_match":"Zufälliger Blockzustandsvergleich","rule_test.tag":"Aliasdaten","rule_test.tag_match":"Aliasdatenvergleich","slot.chest":"Truhe","slot.feet":"Schuhe","slot.head":"Kopfbedeckung","slot.legs":"Hose","slot.mainhand":"Haupthand","slot.offhand":"Nebenhand","statistic.stat":"Statistik","statistic.type":"Typ","statistic.type.broken":"Zerstört","statistic.type.crafted":"Hergestellt","statistic.type.custom":"Sonstige","statistic.type.dropped":"Fallen gelassen","statistic.type.killed":"Getötet","statistic.type.killedByTeam":"Von Team getötet","statistic.type.killed_by":"Getötet von","statistic.type.mined":"Abgebaut","statistic.type.picked_up":"Aufgehoben","statistic.type.teamkill":"Team getötet","statistic.type.used":"Verwendet","statistic.value":"Wert","status_effect.ambient":"Pastellfarben","status_effect.amplifier":"Stärke","status_effect.duration":"Wirkungsdauer","status_effect.visible":"Sichtbar","structure_feature.biome_temp":"Biomtemperatur","structure_feature.biome_temp.cold":"Kalt","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Anhäufungswahrscheinlichkeit","structure_feature.config":"Konfiguration","structure_feature.is_beached":"Gestranded","structure_feature.large_probability":"Große Wahrscheinlichkeit","structure_feature.portal_type":"Portaltyp","structure_feature.portal_type.desert":"Wüste","structure_feature.portal_type.jungle":"Dschungel","structure_feature.portal_type.mountain":"Berg","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ozean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Sumpf","structure_feature.probability":"Wahrscheinlichkeit","structure_feature.size":"Größe","structure_feature.start_pool":"","structure_feature.type":"Typ","structure_feature.type.mesa":"Tafelberge","structure_feature.type.normal":"Normal","surface_builder.config":"Konfiguration","surface_builder.top_material":"Oberes Material","surface_builder.type":"Typ","surface_builder.under_material":"Unteres Material","surface_builder.underwater_material":"Unterwassermaterial","table.type":"Typ","table.type.block":"Block","table.type.chest":"Truhe","table.type.empty":"Leer","table.type.entity":"Objekt","table.type.fishing":"Angeln","table.type.generic":"Sonstiges","tag.replace":"Ersetzen","tag.values":"Werte","template_element.element_type":"Typ","template_element.elements":"Elemente","template_element.feature":"Merkmal","template_element.location":"Ort","template_element.processors":"Prozessoren","template_element.projection":"Projektion","template_element.projection.rigid":"Reichhaltig","template_element.projection.terrain_matching":"Terrainanpassung","template_pool.elements":"Elemente","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Gewichtung","template_pool.fallback":"Rückfall","template_pool.name":"Name","text_component":"Text-Komponente","text_component.boolean":"Wahrheitswert","text_component.list":"Array","text_component.number":"Zahl","text_component.object":"Objekt","text_component.string":"Zeichenkette","text_component_object.block":"Block","text_component_object.bold":"Fett","text_component_object.clickEvent":"Klickevent","text_component_object.clickEvent.action":"Aktion","text_component_object.clickEvent.action.change_page":"Seite wechseln","text_component_object.clickEvent.action.copy_to_clipboard":"In die Zwischenablage kopieren","text_component_object.clickEvent.action.open_file":"Datei öffnen","text_component_object.clickEvent.action.open_url":"Link öffnen","text_component_object.clickEvent.action.run_command":"Befehl ausführen","text_component_object.clickEvent.action.suggest_command":"Befehl in Befehlszeile einfügen","text_component_object.clickEvent.value":"Wert","text_component_object.color":"Farbe","text_component_object.entity":"Objekt","text_component_object.extra":"Zusatz","text_component_object.font":"Schriftart","text_component_object.hoverEvent":"Tooltip","text_component_object.hoverEvent.action":"Aktion","text_component_object.hoverEvent.action.show_entity":"Objekt-Tooltip","text_component_object.hoverEvent.action.show_item":"Gegenstandstooltip","text_component_object.hoverEvent.action.show_text":"JSON-Text-Tooltip","text_component_object.hoverEvent.contents":"Inhalte","text_component_object.hoverEvent.value":"Wert","text_component_object.insertion":"Einfügung","text_component_object.interpret":"Interpretieren","text_component_object.italic":"Kursiv","text_component_object.keybind":"Tastenkombination","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Verschleiert","text_component_object.score":"Punktestand","text_component_object.score.name":"Name","text_component_object.score.objective":"Ziel","text_component_object.score.value":"Wert","text_component_object.selector":"Zielauswahl","text_component_object.storage":"NBT-Speicher","text_component_object.strikethrough":"Durchgestrichen","text_component_object.text":"Normaler Text","text_component_object.translate":"Übersetzbarer Text","text_component_object.underlined":"Unterstrichen","text_component_object.with":"Ersetzuingstexte für Übersetzung","tree_decorator.alter_ground.provider":"Zustandserzeuger","tree_decorator.beehive.probability":"Wahrscheinlichkeit","tree_decorator.cocoa.probability":"Wahrscheinlichkeit","tree_decorator.type":"Typ","true":"Wahr","trunk_placer.base_height":"Basishöhe","trunk_placer.height_rand_a":"Zufallshöhe A","trunk_placer.height_rand_b":"Zufallshöhe B","trunk_placer.type":"Typ","uniform_int.base":"Basis","uniform_int.number":"Exakte Zahl","uniform_int.object":"Zahl aus gleichmäßiger Verteilung","uniform_int.spread":"Ausbreitung","unset":"Zurücksetzen","world.bonus_chest":"Bonustruhe generieren","world.generate_features":"Merkmale generieren","world.seed":"Seed","world_settings.bonus_chest":"Bonustruhe generieren","world_settings.dimensions":"Dimensionen","world_settings.generate_features":"Merkmale generieren","world_settings.seed":"Weltseed","worldgen.warning":"Dieses Feature ist extrem experimentell. Es kann sich jederzeit in zukünftigen Versionen ändern. Spielabstürze beim Erstellen von Welten sind nicht ausgeschlossen.","worldgen/biome_source.checkerboard":"Schachbrettmuster","worldgen/biome_source.checkerboard.help":"Biome generieren in einem Schachbrettmuster.","worldgen/biome_source.fixed":"Festgesetzt","worldgen/biome_source.fixed.help":"Ein Biom für die ganze Welt.","worldgen/biome_source.multi_noise":"Mehrfachrauschen","worldgen/biome_source.multi_noise.help":"Rauschbasierte Chunkgenerierung mit konfigurierbaren Parametern.","worldgen/biome_source.the_end":"Das Ende","worldgen/biome_source.the_end.help":"Biomverteilung für das Ende.","worldgen/biome_source.vanilla_layered":"Vanilla Geschichtet","worldgen/biome_source.vanilla_layered.help":"Schichtenmodellbasierte Biomgenerierung für die Oberwelt.","worldgen/block_placer_type.column_placer":"Säule","worldgen/block_placer_type.double_plant_placer":"2-Block-Pflanze","worldgen/block_placer_type.simple_block_placer":"Einfach","worldgen/block_state_provider_type.forest_flower_provider":"Blumenwald","worldgen/block_state_provider_type.plain_flower_provider":"Ebenenblumen","worldgen/block_state_provider_type.rotated_block_provider":"Rotierter Block","worldgen/block_state_provider_type.simple_state_provider":"Einfacher Zustand","worldgen/block_state_provider_type.weighted_state_provider":"Gewichteter Zustand","worldgen/carver.canyon":"Schlucht","worldgen/carver.cave":"Höhle","worldgen/carver.nether_cave":"Netherhöhle","worldgen/carver.underwater_canyon":"Unterwasserschlucht","worldgen/carver.underwater_cave":"Unterwasser-Höhle","worldgen/chunk_generator.debug":"Debug-Welt","worldgen/chunk_generator.flat":"Superflach","worldgen/chunk_generator.noise":"Standard","worldgen/feature.iceberg":"Eisberg","worldgen/feature.kelp":"Seetang","worldgen/feature.lake":"See","worldgen/feature.large_dripstone":"Großer Tropfstein","worldgen/feature.ore":"Erz","worldgen/feature.replace_single_block":"Einzelnen Block ersetzen","worldgen/feature.sea_pickle":"Meeresgurke","worldgen/feature.seagrass":"Seegras","worldgen/feature.simple_block":"Einzelner Block","worldgen/feature.small_dripstone":"Kleiner Tropfstein","worldgen/feature.tree":"Baum","worldgen/feature.vines":"Ranken","worldgen/feature_size_type.three_layers_feature_size":"Drei Schichten","worldgen/feature_size_type.two_layers_feature_size":"Zwei Schichten","worldgen/foliage_placer_type.acacia_foliage_placer":"Akazie","worldgen/foliage_placer_type.blob_foliage_placer":"Kugel","worldgen/foliage_placer_type.bush_foliage_placer":"Busch","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Schwarzeiche","worldgen/foliage_placer_type.fancy_foliage_placer":"Verzweigt","worldgen/foliage_placer_type.jungle_foliage_placer":"Dschungel","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Riesenkiefer","worldgen/foliage_placer_type.pine_foliage_placer":"Kiefer","worldgen/foliage_placer_type.spruce_foliage_placer":"Fichte","worldgen/structure_pool_element.empty_pool_element":"Leer","worldgen/structure_pool_element.feature_pool_element":"Merkmal","worldgen/structure_pool_element.legacy_single_pool_element":"Veraltetes „Einfach“","worldgen/structure_pool_element.list_pool_element":"Liste","worldgen/structure_pool_element.single_pool_element":"Einfach","worldgen/structure_processor.blackstone_replace":"Schwarzsteinersetzung","worldgen/structure_processor.block_age":"Blockalter","worldgen/structure_processor.block_ignore":"Block ignorieren","worldgen/structure_processor.block_rot":"Blockverfall","worldgen/structure_processor.gravity":"Schwerkraft","worldgen/structure_processor.jigsaw_replacement":"Verbundblock Ersetzung","worldgen/structure_processor.lava_submerged_block":"Unter Lava liegender Block","worldgen/structure_processor.nop":"Nichts","worldgen/structure_processor.rule":"Regel","worldgen/tree_decorator_type.alter_ground":"Bodenveränderung","worldgen/tree_decorator_type.beehive":"Bienennest","worldgen/tree_decorator_type.cocoa":"Kakao","worldgen/tree_decorator_type.leave_vine":"Blattranken","worldgen/tree_decorator_type.trunk_vine":"Stammranken","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Schwarzeiche","worldgen/trunk_placer_type.fancy_trunk_placer":"Verzweigt","worldgen/trunk_placer_type.forking_trunk_placer":"Akazie","worldgen/trunk_placer_type.giant_trunk_placer":"Riesig","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Riesendschungel","worldgen/trunk_placer_type.straight_trunk_placer":"Gerade"}');export default e; +//# sourceMappingURL=de.6c6a67f3.js.map diff --git a/assets/de.6c6a67f3.js.map b/assets/de.6c6a67f3.js.map new file mode 100644 index 00000000..f3bb44f3 --- /dev/null +++ b/assets/de.6c6a67f3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"de.6c6a67f3.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/de.f9c3209c.js b/assets/de.f9c3209c.js deleted file mode 100644 index 6f0d7e86..00000000 --- a/assets/de.f9c3209c.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse('{"advancement.criteria":"Kriterium","advancement.display":"Darstellung","advancement.display.announce_to_chat":"Im Chat bekanntgeben","advancement.display.background":"Hintergrund","advancement.display.description":"Beschreibung","advancement.display.frame":"Rahmen","advancement.display.frame.challenge":"Herausforderung","advancement.display.frame.goal":"Ziel","advancement.display.frame.task":"Aufgabe","advancement.display.help":"Wenn vorhanden, wird der Fortschritt in einem Fortschrittstab angezeigt.","advancement.display.hidden":"Versteckt","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon-Gegenstands-ID","advancement.display.icon.nbt":"Icon-Gegenstandsdaten","advancement.display.show_toast":"Toast anzeigen","advancement.display.title":"Titel","advancement.parent":"Vorheriger Fortschritt","advancement.rewards":"Belohnungen","advancement.rewards.experience":"Erfahrungspunkte","advancement.rewards.function":"Funktion","advancement.rewards.loot":"Beutetabellen","advancement.rewards.recipes":"Rezepte","advancement_trigger.bee_nest_destroyed":"Bienennest zerstört","advancement_trigger.bred_animals":"Tiere gepaart","advancement_trigger.brewed_potion":"Trank gebraut","advancement_trigger.changed_dimension":"Dimension gewechselt","advancement_trigger.channeled_lightning":"Blitze Entladen","advancement_trigger.construct_beacon":"Leuchtfeuer gebaut","advancement_trigger.consume_item":"Gegenstand konsumiert","advancement_trigger.cured_zombie_villager":"Dorfbewohnerzombie geheilt","advancement_trigger.effects_changed":"Statuseffekte verändert","advancement_trigger.enchanted_item":"Gegenstand verzaubert","advancement_trigger.enter_block":"Block betreten","advancement_trigger.entity_hurt_player":"Spieler von Kreatur verletzt","advancement_trigger.entity_killed_player":"Spieler von Kreatur getötet","advancement_trigger.filled_bucket":"Eimer gefüllt","advancement_trigger.fishing_rod_hooked":"Etwas geangelt","advancement_trigger.hero_of_the_village":"Held des Dorfes","advancement_trigger.impossible":"Unmöglich","advancement_trigger.inventory_changed":"Inventar verändert","advancement_trigger.item_durability_changed":"Gegenstandshaltbarkeit verändert","advancement_trigger.item_used_on_block":"Gegenstand auf Block angewendet","advancement_trigger.killed_by_crossbow":"Durch Armbrust getötet","advancement_trigger.levitation":"Schwebekraft","advancement_trigger.location":"Ort betreten","advancement_trigger.nether_travel":"Nether-Reise","advancement_trigger.placed_block":"Block platziert","advancement_trigger.player_generates_container_loot":"Spieler generiert Beute für Behälter","advancement_trigger.player_hurt_entity":"Spieler verletzt Objekt","advancement_trigger.player_killed_entity":"Spieler tötet Objekt","advancement_trigger.recipe_unlocked":"Rezept freigeschaltet","advancement_trigger.safely_harvest_honey":"Sichere Honiggewinnung","advancement_trigger.shot_crossbow":"Armbrust abgefeuert","advancement_trigger.slept_in_bed":"In Bett geschlafen","advancement_trigger.slide_down_block":"Block herunterrutschen","advancement_trigger.summoned_entity":"Objekt beschworen","advancement_trigger.tame_animal":"Tier gezähmt","advancement_trigger.target_hit":"Ziel getroffen","advancement_trigger.thrown_item_picked_up_by_entity":"Objekt hebt fallengelassensen Gegenstand auf","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Enderauge verwendet","advancement_trigger.used_totem":"Totem verwendet","advancement_trigger.villager_trade":"Mit Dorfbewohner gehandelt","advancement_trigger.voluntary_exile":"Freiwilliges Exil","attribute.generic_armor":"Rüstung","attribute.generic_armor_toughness":"Rüstungshärte","attribute.generic_attack_damage":"Angriffsschaden","attribute.generic_attack_knockback":"Angriffsrückstoß","attribute.generic_attack_speed":"Angriffsgeschwindigkeit","attribute.generic_flying_speed":"Fluggeschwindigkeit","attribute.generic_follow_range":"Verfolgungsreichweite","attribute.generic_knockback_resistance":"Rückstoßwiderstand","attribute.generic_luck":"Glück","attribute.generic_max_health":"Maximale Gesundheit","attribute.generic_movement_speed":"Laufgeschwindigkeit","attribute.horse.jump_strength":"Sprungkraft","attribute.zombie.spawn_reinforcements":"Unterstützung rufen","attribute_modifier.amount":"Menge","attribute_modifier.attribute":"Attribut","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Basiswert multiplizieren","attribute_modifier.operation.multiply_total":"Gesamtwert multiplizieren","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Mehrere","badge.experimental":"Experimentell","badge.unstable":"Unsicher","biome.carvers":"Borer","biome.carvers.air":"Luft","biome.carvers.liquid":"Flüssigkeit","biome.category":"Kategorie","biome.creature_spawn_probability":"Spawnwahrscheinlichkeit des Wesens","biome.depth":"Tiefe","biome.downfall":"Niederschlag","biome.effects":"Effekte","biome.effects.additions_sound":"Zusätzliches Geräusch","biome.effects.additions_sound.sound":"Geräusch","biome.effects.additions_sound.tick_chance":"Wahrscheinlichkeit per Tick","biome.effects.ambient_sound":"Ungebungsgeräusch","biome.effects.fog_color":"Nebelfarbe","biome.effects.foliage_color":"Blattfarbe","biome.effects.grass_color":"Grasfarbe","biome.effects.grass_color_modifier":"Grasfabmodifikator","biome.effects.grass_color_modifier.dark_forest":"Dichter Wald","biome.effects.grass_color_modifier.none":"Keiner","biome.effects.grass_color_modifier.swamp":"Sumpf","biome.effects.mood_sound":"Stimmungsgeräusch","biome.effects.mood_sound.block_search_extent":"Blocksuchentfernung","biome.effects.mood_sound.offset":"Verschiebung","biome.effects.mood_sound.sound":"Geräusch","biome.effects.mood_sound.tick_delay":"Verzögerung in Ticks","biome.effects.music":"Musik","biome.effects.music.max_delay":"Maximale Verzögerung","biome.effects.music.min_delay":"Minimale Verzögerung","biome.effects.music.replace_current_music":"Aktuelle Musik ersetzen","biome.effects.music.sound":"Geräusch","biome.effects.particle":"Partikel","biome.effects.particle.options":"Optionen","biome.effects.particle.options.type":"Partikelart","biome.effects.particle.probability":"Wahrscheinlichkeit","biome.effects.sky_color":"Himmelsfarbe","biome.effects.water_color":"Wasserfarbe","biome.effects.water_fog_color":"Wassernebelfarbe","biome.features":"Merkmale","biome.features.entry":"Schritt %0%","biome.features.entry.entry":"Merkmal","biome.player_spawn_friendly":"Weltspawn möglich","biome.player_spawn_friendly.help":"Wenn „true“, wird der Weltspawn in diesem Biom bevorzugt.","biome.precipitation":"Witterung","biome.precipitation.none":"Keine","biome.precipitation.rain":"Regen","biome.precipitation.snow":"Schnee","biome.scale":"Skalierung","biome.spawn_costs":"Spawnkosten","biome.spawn_costs.charge":"Ladung","biome.spawn_costs.energy_budget":"Energiebudget","biome.spawners":"Spawner","biome.spawners.ambient":"Atmosphäre","biome.spawners.creature":"Kreatur","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Maximale Anzahl","biome.spawners.entry.minCount":"Minimale Anzahl","biome.spawners.entry.type":"Typ","biome.spawners.entry.weight":"Gewichtung","biome.spawners.misc":"Verschiedene","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Wasseratmosphäre","biome.spawners.water_creature":"Wasserkreatur","biome.starts":"Strukturanfänge","biome.starts.entry":"Struktur","biome.starts.help":"Liste konfigurierter Strukturmerkmale.","biome.surface_builder":"Oberflächengestalter","biome.temperature":"Temperatur","biome.temperature_modifier":"Temperaturmodifikator","biome.temperature_modifier.frozen":"Gefroren","biome.temperature_modifier.none":"Keiner","block.block":"Block-ID","block.nbt":"Blockdaten","block.state":"Blockzustand","block.tag":"Block-Aliasdaten","block_placer.column_placer.extra_size":"Extra Größe","block_placer.column_placer.min_size":"Minimale Größe","block_placer.type":"Typ","block_state.Name":"Name","block_state.Properties":"Eigenschaften","block_state_provider.randomized_int_state_provider.source":"Quelle","block_state_provider.randomized_int_state_provider.values":"Werte","block_state_provider.rotated_block_provider.state":"Zustand","block_state_provider.simple_state_provider.state":"Zustand","block_state_provider.type":"Typ","block_state_provider.weighted_state_provider.entries":"Einträge","block_state_provider.weighted_state_provider.entries.entry.data":"Zustand","block_state_provider.weighted_state_provider.entries.entry.weight":"Gewichtung","carver.config":"Konfiguration","carver.config.canyon.vertical_rotation":"Vertikale Ausrichtung","carver.config.debug_settings":"Debug-Einstellungen","carver.config.debug_settings.debug_mode":"Debug-Modus","carver.config.probability":"Wahrscheinlichkeit","carver.config.y":"Y","carver.type":"Typ","children":"Kinder","children.entry":"Eintrag","condition.alternative.terms":"Bedingungen","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Blockzustand","condition.condition":"Bedingung","condition.damage_source":"Schadensquelle","condition.entity_properties.entity":"Objekt","condition.entity_scores.entity":"Objekt","condition.entity_scores.scores":"Punktestände","condition.entry":"Prädikat","condition.inverted.term":"Bedingung","condition.item":"Gegenstand","condition.killed_by_player.inverse":"Invertiert","condition.list":"Mehrere","condition.location":"Ort","condition.location_check.offsetX":"X-Verschiebung","condition.location_check.offsetY":"Y-Verschiebung","condition.location_check.offsetZ":"Z-Verschiebung","condition.object":"Einfach","condition.random_chance.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.looting_multiplier":"Plüderungsmultiplikator","condition.reference.name":"Prädikatname","condition.table_bonus.chances":"Wahrscheinlichkeiten","condition.table_bonus.chances.entry":"Wahrscheinlichkeit","condition.table_bonus.enchantment":"Verzauberung","condition.time_check.period":"Zeitraum","condition.time_check.period.help":"Wenn vorhanden, wird der Restwert von der Zeit geteilt durch diesen Wert gebildet. Wenn beispielsweise dieser Wert auf 24000 gesetzt wird, wird der Zeitwert auf Tagen operieren.","condition.time_check.value":"Wert","condition.value_check.value":"Wert","condition.weather_check.raining":"Regen","condition.weather_check.thundering":"Gewitter","conditions":"Bedingungen","conditions.entry":"Bedingung","conditions.list":"Bedingungen","conditions.object":"Veraltet","copy_source.block_entity":"Blockobjekt","copy_source.killer":"Mörder","copy_source.killer_player":"Mörderspieler","copy_source.this":"Selbst","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Anzahl Bienen","criterion.bred_animals.child":"Kind","criterion.bred_animals.parent":"Mutter","criterion.bred_animals.partner":"Vater","criterion.brewed_potion.potion":"Trank","criterion.changed_dimension.from":"Von","criterion.changed_dimension.to":"Nach","criterion.channeled_lightning.victims":"Getroffene","criterion.channeled_lightning.victims.entry":"Objekt","criterion.conditions":"Bedingungen","criterion.construct_beacon.beacon_level":"Pyramidenhöhe","criterion.consume_item.item":"Gegenstand","criterion.cured_zombie_villager.villager":"Dorfbewohner","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Statuseffekte","criterion.enchanted_item.item":"Gegenstand","criterion.enchanted_item.levels":"Erfahrungslevel","criterion.enter_block.block":"Block","criterion.enter_block.state":"Zustände","criterion.entity_hurt_player.damage":"Schaden","criterion.entity_killed_player.entity":"Quellobjekt","criterion.entity_killed_player.killing_blow":"Todesschlag","criterion.filled_bucket.item":"Gegenstand","criterion.fishing_rod_hooked.entity":"Gezogenes Objekt","criterion.fishing_rod_hooked.item":"Gegenstand","criterion.hero_of_the_village.location":"Ort","criterion.inventory_changed.items":"Gegenstände","criterion.inventory_changed.items.entry":"Gegenstand","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Leere Slots","criterion.inventory_changed.slots.full":"Volle Slots","criterion.inventory_changed.slots.occupied":"Belegte Slots","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Haltbarkeit","criterion.item_durability_changed.item":"Gegenstand","criterion.item_used_on_block.item":"Gegenstand","criterion.item_used_on_block.location":"Ort","criterion.killed_by_crossbow.unique_entity_types":"Anzahl einzigartiger Objekttypen","criterion.killed_by_crossbow.victims":"Getroffene","criterion.killed_by_crossbow.victims.entry":"Objekt","criterion.levitation.distance":"Distanz","criterion.levitation.duration":"Dauer","criterion.location.location":"Ort","criterion.nether_travel.distance":"Distanz","criterion.nether_travel.entered":"Startort","criterion.nether_travel.exited":"Zielort","criterion.placed_block.block":"Block","criterion.placed_block.item":"Gegenstand","criterion.placed_block.location":"Ort","criterion.placed_block.state":"Zustände","criterion.player":"Spieler","criterion.player_generates_container_loot.loot_table":"Beutetabelle","criterion.player_hurt_entity.damage":"Schaden","criterion.player_hurt_entity.entity":"Opferobjekt","criterion.player_killed_entity.entity":"Opferobjekt","criterion.player_killed_entity.killing_blow":"Todesschlag","criterion.recipe_unlocked.recipe":"Rezept","criterion.rod":"Angel","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Gegenstand","criterion.shot_crossbow.item":"Gegenstand","criterion.slept_in_bed.location":"Ort","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Objekt","criterion.tame_animal.entity":"Tier","criterion.target_hit.projectile":"Geschoss","criterion.target_hit.shooter":"Schütze","criterion.target_hit.signal_strength":"Signalstärke","criterion.thrown_item_picked_up_by_entity.entity":"Objekt","criterion.thrown_item_picked_up_by_entity.item":"Gegenstand","criterion.trigger":"Auslöser","criterion.used_ender_eye.distance":"Distanz","criterion.used_totem.item":"Totem-Gegenstand","criterion.villager_trade.item":"Gekaufter Gegenstand","criterion.villager_trade.villager":"Dorfbewohner","criterion.voluntary_exile.location":"Ort","damage.blocked":"Geblocked","damage.dealt":"Schaden zugefügt","damage.source_entity":"Schadensverursacherobjekt","damage.taken":"Schaden genommen","damage.type":"Schadensart","damage_source.bypasses_armor":"Rüstung umgehen","damage_source.bypasses_invulnerability":"Leere","damage_source.bypasses_magic":"Hunger","damage_source.direct_entity":"Direktes Schadensquellobjekt","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Feuer","damage_source.is_lightning":"Blitzschlag","damage_source.is_magic":"Magie","damage_source.is_projectile":"Geschoss","damage_source.source_entity":"Schadensverurscherobjekt","decorator.carving_mask.step":"Generierungsschritt","decorator.cave_surface.floor_to_ceiling_search_range":"Suchradius","decorator.cave_surface.surface":"Oberfläche","decorator.config":"Konfiguration","decorator.count.count":"Anzahl","decorator.count_extra.count":"Anzahl","decorator.count_extra.extra_chance":"Zusätzliche Wahrscheinlichkeit","decorator.count_extra.extra_count":"Zusätzliche Anzahl","decorator.count_multilayer.count":"Anzahl","decorator.count_noise.above_noise":"Oberhalb des Rauschens","decorator.count_noise.below_noise":"Unterhalb des Rauschens","decorator.count_noise.noise_level":"Rauschlevel","decorator.count_noise_biased.noise_factor":"Rauschfaktor","decorator.count_noise_biased.noise_offset":"Rauschverschiebung","decorator.count_noise_biased.noise_to_count_ratio":"Verhältnis von Rauschen zu Anzahl","decorator.decorated.inner":"Innerer","decorator.decorated.outer":"Äußérer","decorator.depth_average.baseline":"Grundlinie","decorator.depth_average.spread":"Ausbreitung","decorator.glowstone.count":"Anzahl","decorator.type":"Typ","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biomquelle","dimension.overworld":"Oberwelt","dimension.the_end":"Das Ende","dimension.the_nether":"Der Nether","dimension.type":"Dimensionstyp","dimension.type.object":"Benutzerdefiniert","dimension.type.string":"Vorlage","dimension_type.ambient_light":"Umgebungslicht","dimension_type.ambient_light.help":"Wert zwischen 0 und 1.","dimension_type.bed_works":"Bett funktioniert","dimension_type.coordinate_scale":"Koordinatenskalierung","dimension_type.effects":"Effekte","dimension_type.effects.overworld":"Oberwelt","dimension_type.effects.the_end":"Das Ende","dimension_type.effects.the_nether":"Der Nether","dimension_type.fixed_time":"Feste Zeit","dimension_type.fixed_time.help":"Wenn dieser Wert gesetzt ist, ist die Zeit an diesem Wert für diese Dimension angehalten und die Sonne bzw. der Mond bleiben an derselben Stelle.","dimension_type.has_ceiling":"Hat Decke","dimension_type.has_raids":"Hat Überfälle","dimension_type.has_skylight":"Hat Tageslicht","dimension_type.infiniburn":"Dauerbrenner","dimension_type.logical_height":"Logische Höhe","dimension_type.name":"Name","dimension_type.natural":"Natürlich","dimension_type.natural.help":"Wenn „true“, erzeugen Nether-Portale zombifizierte Piglins. Wenn „false“, rotieren Kompasse und Uhren zufällig.","dimension_type.piglin_safe":"Piglinsicher","dimension_type.respawn_anchor_works":"Seelenanker funktioniert","dimension_type.ultrawarm":"Superwarm","dimension_type.ultrawarm.help":"Wenn „true“, verdampft Wasser und Schwämme trocknen.","distance.absolute":"Absolut","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Wasseraffinität","enchantment.bane_of_arthropods":"Nemesis der Gliederfüßer","enchantment.binding_curse":"Fluch der Bindung","enchantment.blast_protection":"Explosionsschutz","enchantment.channeling":"Entladung","enchantment.depth_strider":"Wasserläufer","enchantment.efficiency":"Effizienz","enchantment.enchantment":"Verzauberung","enchantment.feather_falling":"Federfall","enchantment.fire_aspect":"Verbrennung","enchantment.fire_protection":"Feuerschutz","enchantment.flame":"Flamme","enchantment.fortune":"Glück","enchantment.frost_walker":"Eisläufer","enchantment.impaling":"Harpune","enchantment.infinity":"Unendlichkeit","enchantment.knockback":"Rückstoß","enchantment.levels":"Level","enchantment.looting":"Plünderung","enchantment.loyalty":"Treue","enchantment.luck_of_the_sea":"Glück des Meeres","enchantment.lure":"Köder","enchantment.mending":"Reparatur","enchantment.multishot":"Mehrfachschuss","enchantment.piercing":"Durchschuss","enchantment.power":"Stärke","enchantment.projectile_protection":"Schusssicher","enchantment.protection":"Schutz","enchantment.punch":"Schlag","enchantment.quick_charge":"Schnellladen","enchantment.respiration":"Atmung","enchantment.riptide":"Sog","enchantment.sharpness":"Schärfe","enchantment.silk_touch":"Behutsamkeit","enchantment.smite":"Bann","enchantment.sweeping":"Schwungkraft","enchantment.thorns":"Dornen","enchantment.unbreaking":"Haltbarkeit","enchantment.vanishing_curse":"Fluch des Verschwindens","entity.distance":"Distanz","entity.effects":"Statuseffekte","entity.equipment":"Ausrüstung","entity.fishing_hook":"Angelhaken","entity.fishing_hook.in_open_water":"In offenem Gewässer","entity.flags":"Markierungen","entity.isBaby":"Baby","entity.isOnFire":"Brennt","entity.isSneaking":"Schleicht","entity.isSprinting":"Rennt","entity.isSwimming":"Schwimmt","entity.location":"Ort","entity.nbt":"NBT-Daten","entity.player":"Spieler","entity.targeted_entity":"Ausgewältes Objekt","entity.team":"Team","entity.type":"Objekt","entity.vehicle":"Gefährt","entity_source.killer":"Mörder","entity_source.killer_player":"Mörderspieler","entity_source.this":"Selbst","entry":"Eintrag","error":"Fehler","error.expected_boolean":"Wahrheitswer erwartet","error.expected_integer":"Ganzzahl erwartet","error.expected_json":"JSON erwartet","error.expected_list":"Array erwartet","error.expected_number":"Zahl erwartet","error.expected_object":"Objekt erwartet","error.expected_range":"Wertebereich erwartet","error.expected_string":"Zeichenkette erwartet","error.expected_uniform_int":"Gleichmäßige Verteilung erwartet","error.invalid_binomial":"Binomialverteilung wird in diesem Wertebereich nicht unterstützt","error.invalid_empty_list":"Array darf nicht leer sein","error.invalid_empty_string":"Zeichenkette darf nicht leer sein","error.invalid_enum_option":"Ungültige Option „%0%“","error.invalid_exact":"Dieser Wertebereich unterstützt keine Konstante","error.invalid_number_range.between":"Zahl zwischen %0% und %1% erwartet","error.invalid_pattern":"Zeichenkette ist ungültig: %0%","error.recipe.invalid_key":"Schlüssel darf nur ein einzelnes Zeichen sein","error.separation_smaller_spacing":"Aufteilung muss kleiner als Abstand sein","false":"Falsch","feature.bamboo.probability":"Wahrscheinlichkeit","feature.basalt_columns.height":"Höhe","feature.basalt_columns.reach":"Reichweite","feature.block_pile.state_provider":"Zustanderzeuger","feature.config":"Konfiguration","feature.decorated.decorator":"Dekorator","feature.decorated.feature":"Merkmal","feature.delta_feature.contents":"Inhalte","feature.delta_feature.rim":"Rand","feature.delta_feature.rim_size":"Randgröße","feature.delta_feature.size":"Größe","feature.disk.half_height":"Halbe Höhe","feature.disk.radius":"Radius","feature.disk.state":"Zustand","feature.disk.targets":"Ziele","feature.disk.targets.entry":"Zustand","feature.emerald_ore.state":"Zustand","feature.emerald_ore.target":"Ziel","feature.end_gateway.exact":"Exakt","feature.end_gateway.exit":"Ausgang","feature.end_spike.crystal_beam_target":"Kristallstrahlziel","feature.end_spike.crystal_invulnerable":"Endkristall Unzerstörbar","feature.end_spike.spikes":"Zacken","feature.end_spike.spikes.entry":"Zacken","feature.end_spike.spikes.entry.centerX":"X Mitte","feature.end_spike.spikes.entry.centerZ":"Z Mitte","feature.end_spike.spikes.entry.guarded":"Eisengitterkäfig","feature.end_spike.spikes.entry.height":"Höhe","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Höhe","feature.fill_layer.state":"Zustand","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Blackplatzierer","feature.flower.can_replace":"Kann Ersetzen","feature.flower.need_water":"Benötigt Wasser","feature.flower.project":"Projizieren","feature.flower.state_provider":"Zustandserzeuger","feature.flower.tries":"Versuche","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X Ausbreitung","feature.flower.yspread":"Y Ausbreitung","feature.flower.zspread":"Z Ausbreitung","feature.forest_rock.state":"Zustand","feature.huge_brown_mushroom.cap_provider":"Schirmerzeuger","feature.huge_brown_mushroom.foliage_radius":"Schirmradius","feature.huge_brown_mushroom.stem_provider":"Stielerzeuger","feature.huge_fungus.decor_state":"Dekoration","feature.huge_fungus.hat_state":"Schirm","feature.huge_fungus.planted":"Gepflanzt","feature.huge_fungus.stem_state":"Stiel","feature.huge_fungus.valid_base_block":"Erlaubter Untergrund","feature.huge_red_mushroom.cap_provider":"Schirmerzeuger","feature.huge_red_mushroom.foliage_radius":"Schirmradius","feature.huge_red_mushroom.stem_provider":"Stielerzeuger","feature.ice_patch.half_height":"Halbe Höhe","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"Zustand","feature.ice_patch.targets":"Ziele","feature.ice_patch.targets.entry":"Zustand","feature.iceberg.state":"Zustand","feature.lake.state":"Zustand","feature.nether_forest_vegetation.state_provider":"Zustanderzeuger","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"Zustand","feature.netherrack_replace_blobs.target":"Ziel","feature.no_surface_ore.size":"Größe","feature.no_surface_ore.state":"Zustand","feature.no_surface_ore.target":"Ziel","feature.object":"Benutzerdefiniert","feature.ore.size":"Größe","feature.random_boolean_selector.feature_false":"Merkmal 1","feature.random_boolean_selector.feature_true":"Merkmal 2","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Blockplatzierer","feature.random_patch.can_replace":"Kann Ersetzen","feature.random_patch.need_water":"Benötigt Wasser","feature.random_patch.project":"Projizieren","feature.random_patch.state_provider":"Zustanderzeuger","feature.random_patch.tries":"Versuche","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X Ausbreitung","feature.random_patch.yspread":"Y Ausbreitung","feature.random_patch.zspread":"Z Ausbreitung","feature.random_selector.default":"Standard","feature.random_selector.features":"Merkmale","feature.random_selector.features.entry":"Merkmal","feature.random_selector.features.entry.chance":"Wahrscheinlichkeit","feature.random_selector.features.entry.feature":"Merkmal","feature.sea_pickle.count":"Anzahl","feature.seagrass.probability":"Wahrscheinlichkeit","feature.simple_block.place_in":"Innerhalb platzieren","feature.simple_block.place_in.entry":"Zustand","feature.simple_block.place_on":"Platzieren auf","feature.simple_block.place_on.entry":"Zustand","feature.simple_block.place_under":"Unterhalb platzieren","feature.simple_block.place_under.entry":"Zustand","feature.simple_block.to_place":"Zu platzieren","feature.simple_random_selector.features":"Merkmale","feature.simple_random_selector.features.entry":"Merkmal","feature.spring_feature.hole_count":"Menge Löcher","feature.spring_feature.required_block_below":"Benötigt block unterhalb","feature.spring_feature.rock_count":"Menge Fels","feature.spring_feature.state":"Zustand","feature.spring_feature.valid_blocks":"Erlaubte Blöcke","feature.string":"Referenz","feature.tree.decorators":"Dekoratoren","feature.tree.decorators.entry":"Baumdekorator","feature.tree.foliage_placer":"Blattplatzierer","feature.tree.heightmap":"Höhenfeld","feature.tree.ignore_vines":"Ranken ignorieren","feature.tree.leaves_provider":"Blattblockerzeuger","feature.tree.max_water_depth":"Maximale Wassertiefe","feature.tree.minimum_size":"Minimale Größe","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Untere Größe","feature.tree.minimum_size.middle_size":"Mittlere Größe","feature.tree.minimum_size.min_clipped_height":"Minimale Größe","feature.tree.minimum_size.type":"Minimale Größe","feature.tree.minimum_size.upper_limit":"Obere Grenze","feature.tree.minimum_size.upper_size":"Obere Größe","feature.tree.trunk_placer":"Stammplatzierer","feature.tree.trunk_provider":"Stammblockerzeuger","feature.type":"Typ","fluid.fluid":"Flüssigkeits-ID","fluid.state":"Flüssigkeitszustand","fluid.tag":"Flüssigkeitsaliasdaten","fluid_state.Name":"Name","fluid_state.Properties":"Eigenschaften","foliage_placer.crown_height":"Kronenhöhe","foliage_placer.height":"Höhe","foliage_placer.offset":"Verschiebung","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Stammhöhe","foliage_placer.type":"Typ","function.apply_bonus.enchantment":"Verzauberung","function.apply_bonus.formula":"Formel","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial mit Bonusmenge","function.apply_bonus.formula.ore_drops":"Erzdrops","function.apply_bonus.formula.uniform_bonus_count":"Gleichmäßige Verteilung mit Bonusmenge","function.apply_bonus.parameters":"Parameter","function.apply_bonus.parameters.bonusMultiplier":"Muliplikator","function.apply_bonus.parameters.extra":"Bonusmenge","function.apply_bonus.parameters.probability":"Wahrscheinlichkeit","function.copy_name.source":"Quelle","function.copy_nbt.ops":"NBT-Operationen","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Quelle","function.copy_state.block":"Block","function.copy_state.properties":"Eigenschaften","function.copy_state.properties.entry":"Eigenschaft","function.enchant_randomly.enchantments":"Optionale Verzauberungen","function.enchant_randomly.enchantments.entry":"Verzauberung","function.enchant_with_levels.levels":"Level","function.enchant_with_levels.treasure":"Schatz","function.exploration_map.decoration":"Dekoration","function.exploration_map.destination":"Ziel","function.exploration_map.search_radius":"Suchradius (Chunks)","function.exploration_map.skip_existing_chunks":"Bereits generierte Chunks ignorieren","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Objekt","function.function":"Funktion","function.limit_count.limit":"Grenze","function.looting_enchant.count":"Anzahl","function.looting_enchant.limit":"Grenze","function.set_attributes.modifiers":"Modifikatoren","function.set_attributes.modifiers.entry":"Modifikator","function.set_contents.entries":"Inhalte","function.set_contents.entries.entry":"Eintrag","function.set_count.count":"Anzahl","function.set_damage.damage":"Schaden","function.set_data.data":"Daten","function.set_loot_table.name":"Beutetabellenname","function.set_loot_table.seed":"Seed","function.set_lore.entity":"Objekt","function.set_lore.lore":"Beschreibung","function.set_lore.lore.entry":"Zeile","function.set_lore.replace":"Ersetzen","function.set_name.entity":"Objekt","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Statuseffekte","function.set_stew_effect.effects.entry":"Statuseffekt","function.set_stew_effect.effects.entry.duration":"Wirkungsdauer","function.set_stew_effect.effects.entry.type":"Effekt","functions":"Funktionen","functions.entry":"Funktion","gamemode.adventure":"Abenteuer","gamemode.creative":"Kreativ","gamemode.spectator":"Zuschauer","gamemode.survival":"Überleben","generation_step.air":"Luft","generation_step.liquid":"Flüssigkeit","generator.biome_source.altitude_noise":"Höhenrauschen","generator.biome_source.biome":"Biom","generator.biome_source.biomes":"Biome","generator.biome_source.humidity_noise":"Feuchtigkeitsrauschen","generator.biome_source.large_biomes":"Große Biome","generator.biome_source.legacy_biome_init_layer":"Veraltete Biominitierungsschicht","generator.biome_source.preset":"Biomvorlage","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Skalierung","generator.biome_source.seed":"Biom-Seed","generator.biome_source.temperature_noise":"Temperaturrauschen","generator.biome_source.type":"Biomquelle","generator.biome_source.weirdness_noise":"Merkwürdigkeitsrauschen","generator.seed":"Dimensions-Seed","generator.settings":"Generatoreinstellungen","generator.settings.biome":"Biom","generator.settings.lakes":"Seen","generator.settings.layers":"Schichten","generator.settings.layers.entry":"Schicht","generator.settings.layers.entry.block":"Block-ID","generator.settings.layers.entry.height":"Höhe","generator.settings.object":"Benutzerdefiniert","generator.settings.presets.amplified":"Zerküftet","generator.settings.presets.caves":"Höhlen","generator.settings.presets.end":"Ende","generator.settings.presets.floating_islands":"Schwebende Inseln","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Oberwelt","generator.settings.string":"Vorlage","generator.settings.structures":"Strukturen","generator.settings.structures.stronghold":"Festung","generator.settings.structures.stronghold.count":"Menge","generator.settings.structures.stronghold.distance":"Distanz","generator.settings.structures.stronghold.spread":"Ausbreitung","generator.settings.structures.structures":"Strukturen","generator.type":"Generatortyp","generator_biome.biome":"Biom","generator_biome.parameters":"Parameter","generator_biome.parameters.altitude":"Höhenlage","generator_biome.parameters.help":"Diese Parameter entscheiden die Platzierung des Bioms. Jedes Biom braucht eine einzigartige Kombination. Biome mit ähnlichen Werten generieren näher beieinander.","generator_biome.parameters.humidity":"Feuchtigkeit","generator_biome.parameters.offset":"Versatz","generator_biome.parameters.temperature":"Temperatur","generator_biome.parameters.weirdness":"Merkwürdigkeit","generator_biome_noise.amplitudes":"Amplituden","generator_biome_noise.amplitudes.entry":"Oktave %0%","generator_biome_noise.firstOctave":"Erste Oktave","generator_structure.salt":"Salt","generator_structure.separation":"Aufteilung","generator_structure.separation.help":"Die minimale Distanz in Chunks zwischen zwei Strukturen. Muss kleiner als Abstand sein.","generator_structure.spacing":"Abstand","generator_structure.spacing.help":"Die durchschnittliche Distanz swischen zwei Strukturen dieses Typs.","heightmap_type.MOTION_BLOCKING":"Bewegungsblockierend","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Bewegungsblockierend (Blätter ignorieren)","heightmap_type.OCEAN_FLOOR":"Ozeangrund","heightmap_type.OCEAN_FLOOR_WG":"Ozeangrund (Weltgenerierung)","heightmap_type.WORLD_SURFACE":"Weltoberfläche","heightmap_type.WORLD_SURFACE_WG":"Weltoberfläche (Weltgenerierung)","hide_source":"Quelltext verstecken","item.count":"Menge","item.durability":"Haltbarkeit","item.enchantments":"Verzauberungen","item.enchantments.entry":"Verzauberung","item.item":"Gegenstands-ID","item.nbt":"Gegenstandsdaten","item.potion":"Trank","item.tag":"Gegenstandsaliasdaten","key.advancements":"Fortschritte","key.attack":"Angreifen/Abbauen","key.back":"Rückwärts laufen","key.chat":"Chat öffnen","key.command":"Befehlszeile öffnen","key.drop":"Ausgewählten Gegenstand fallen lassen","key.forward":"Vorwärts laufen","key.fullscreen":"Vollbild wechseln","key.hotbar.1":"Schnellzugriff 1","key.hotbar.2":"Schnellzugriff 2","key.hotbar.3":"Schnellzugriff 3","key.hotbar.4":"Schnellzugriff 4","key.hotbar.5":"Schnellzugriff 5","key.hotbar.6":"Schnellzugriff 6","key.hotbar.7":"Schnellzugriff 7","key.hotbar.8":"Schnellzugriff 8","key.hotbar.9":"Schnellzugriff 9","key.inventory":"Inventar öffnen/schließen","key.jump":"Springen","key.left":"Links","key.loadToolbarActivator":"Schnellzugriffsleiste laden","key.pickItem":"Block auswählen","key.playerlist":"Spieler auflisten","key.right":"Rechts","key.saveToolbarActivator":"Schnellzugriffsleiste speichern","key.screenshot":"Screenshot","key.smoothCamera":"Kameraverhalten wechseln","key.sneak":"Schleichen","key.spectatorOutlines":"Spieler hervorheben (Zuschauer)","key.sprint":"Sprinten","key.swapOffhand":"Gegenstand mit Zweithand tauschen","key.togglePerspective":"Perspektive wechseln","key.use":"Benutzen/Platzieren","location.biome":"Biom","location.block":"Block","location.dimension":"Dimension","location.feature":"Merkmal","location.fluid":"Flüssigkeit","location.light":"Licht","location.light.light":"Sichtbares Lichtlevel","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Verraucht","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Blockeigenschaften","loot_condition_type.damage_source_properties":"Schadensquelle","loot_condition_type.entity_properties":"Objekteigenschaften","loot_condition_type.entity_scores":"Objektpunktestände","loot_condition_type.inverted":"Invertiert","loot_condition_type.killed_by_player":"Getötet","loot_condition_type.location_check":"Ort","loot_condition_type.match_tool":"Werkzeugeigenschaften","loot_condition_type.random_chance":"Zufällig","loot_condition_type.random_chance_with_looting":"Zufällig mit Plünderung","loot_condition_type.reference":"Referenz","loot_condition_type.survives_explosion":"Überlebt Explosion","loot_condition_type.table_bonus":"Tabellenbonus","loot_condition_type.time_check":"Zeitüberprüfung","loot_condition_type.weather_check":"Wetterüberprüfung","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Beutetabellenname","loot_entry.quality":"Qualität","loot_entry.tag.expand":"Erweitern","loot_entry.tag.expand.help":"Wenn „false“ werden alle Gegenstände aus den Aliasdaten verwendet. Wenn „false“ wird ein Gegenstand aus den Aliasdaten zufällig ausgewählt.","loot_entry.tag.name":"Name des Gegenstandsaliases","loot_entry.type":"Typ","loot_entry.weight":"Gewichtung","loot_function_type.apply_bonus":"Bonus anwenden","loot_function_type.copy_name":"Namen kopieren","loot_function_type.copy_nbt":"NBT-Daten kopieren","loot_function_type.copy_state":"Blockzustände kopieren","loot_function_type.enchant_randomly":"Zufällig verzaubern","loot_function_type.enchant_with_levels":"Mit Leveln verzaubern","loot_function_type.exploration_map":"Entdeckerkarteneigenschaften","loot_function_type.explosion_decay":"Explosionsverfall","loot_function_type.fill_player_head":"Spielerkopf erzeugen","loot_function_type.furnace_smelt":"Ofen schmelzen","loot_function_type.limit_count":"Stapelgröße limitieren","loot_function_type.looting_enchant":"Plünderungsverzauberung","loot_function_type.set_attributes":"Attribute setzen","loot_function_type.set_contents":"Inhalte setzen","loot_function_type.set_count":"Anzahl setzen","loot_function_type.set_damage":"Schaden setzen","loot_function_type.set_data":"Daten setzen","loot_function_type.set_loot_table":"Beutetabelle setzen","loot_function_type.set_lore":"Gegenstandsbeschreibung setzen","loot_function_type.set_name":"Name setzen","loot_function_type.set_nbt":"NBT setzen","loot_function_type.set_stew_effect":"Suppeneffekt setzen","loot_pool.bonus_rolls":"Bonusausschüttungen","loot_pool.entries":"Einträge","loot_pool.entries.entry":"Eintrag","loot_pool.rolls":"Ausschüttungen","loot_pool.rolls.help":"Wie oft ein Eintrag aus diesem Beutetopf ausgewält wird.","loot_pool_entry_type.alternatives":"Alternativen","loot_pool_entry_type.alternatives.help":"Wält den ersten Eintrag aus der Liste aus, dessen Bedingung erfüllt ist.","loot_pool_entry_type.dynamic":"Dynamisch","loot_pool_entry_type.dynamic.help":"Erzeugt blockspezifischen Loot.","loot_pool_entry_type.empty":"Leer","loot_pool_entry_type.empty.help":"Ein leerer Eintrag. Kann verwendet werden, um einen Beutetopf zu einer gewissen Wahrscheinlichkeit nichts ausschütten zu lassen.","loot_pool_entry_type.group":"Gruppe","loot_pool_entry_type.group.help":"Grupiert mehrere Einträge und führt alle Einträge aus, wenn die eigene Bedingung erfüllt ist.","loot_pool_entry_type.item":"Gegenstand","loot_pool_entry_type.item.help":"Ein Eintrag mit einem einzelnen Gegenstand.","loot_pool_entry_type.loot_table":"Beutetabelle","loot_pool_entry_type.loot_table.help":"Ein Eintrag, der eine andere Beutetabelle ausschüttet.","loot_pool_entry_type.sequence":"Sequenz","loot_pool_entry_type.sequence.help":"Schüttet alle Kindeinträge aus, bis die Bedingung eines Eintrages fehlschlägt.","loot_pool_entry_type.tag":"Gegenstandsaliasdaten","loot_pool_entry_type.tag.help":"Ein Eintrag, der aus einem Gegenstandsaliasdatum Gegenstände ausschüttet.","loot_table.pools":"Beutetöpfe","loot_table.pools.entry":"Beutetopf","luck_based":"Glücksbasiert","nbt_operation.op":"Operation","nbt_operation.op.append":"Anhängen","nbt_operation.op.merge":"Zusammenfügen","nbt_operation.op.replace":"Ersetzen","nbt_operation.source":"Quelle","nbt_operation.target":"Ziel","noise_settings.bedrock_floor_position":"Grundgestein-Bodenpositionierung","noise_settings.bedrock_floor_position.help":"Position des Grundgesteinbodens. Höhere Zahlen versetzen ihn nach oben.","noise_settings.bedrock_roof_position":"Grundgestein-Deckenpositionierung","noise_settings.bedrock_roof_position.help":"Positionierung der Grundgesteindecke relativ zur Höhe der Dimension. Höhere Zahlen versetzen die Decke nach unten.","noise_settings.biome":"Biom","noise_settings.default_block":"Standardblock","noise_settings.default_fluid":"Standardflüssigkeit","noise_settings.disable_mob_generation":"Mobgenerieung deaktivieren","noise_settings.disable_mob_generation.help":"Wenn „true“, werden keine Kreaturen während der Weltgenerierung erzeugt.","noise_settings.name":"Name","noise_settings.noise":"Rauscheinstellungen","noise_settings.noise.amplified":"Zerklüftet","noise_settings.noise.bottom_slide":"Untere Schicht","noise_settings.noise.bottom_slide.offset":"Verschiebung der unteren Schicht","noise_settings.noise.bottom_slide.size":"Größe der unteren Schicht","noise_settings.noise.bottom_slide.target":"Ziel der unteren Schicht","noise_settings.noise.density_factor":"Dichtigkeitsfaktor","noise_settings.noise.density_offset":"Dichtigkeitsverschiebung","noise_settings.noise.height":"Höhe","noise_settings.noise.island_noise_override":"Insel-Rauschüberschreibung","noise_settings.noise.island_noise_override.help":"Wenn „true“, wird das Terrain wie im Ende mit einer größeren Insel in der Mitte und mehr Inseln weiter weg generiert.","noise_settings.noise.random_density_offset":"Zufällige Dichtigkeitsverschiebung","noise_settings.noise.sampling":"Abtastung","noise_settings.noise.sampling.xz_factor":"XZ-Faktor","noise_settings.noise.sampling.xz_scale":"XZ-Skalierung","noise_settings.noise.sampling.y_factor":"Y-Faktor","noise_settings.noise.sampling.y_scale":"Y-Skalierung","noise_settings.noise.simplex_surface_noise":"Simplex-Oberflächenrauschen","noise_settings.noise.size_horizontal":"Horizontale Größe","noise_settings.noise.size_vertical":"Vertikale Größe","noise_settings.noise.top_slide":"Obere Schicht","noise_settings.noise.top_slide.offset":"Verschiebung der oberen Schicht","noise_settings.noise.top_slide.size":"Größe der oberen Schicht","noise_settings.noise.top_slide.target":"Ziel der oberen Schicht","noise_settings.sea_level":"Meeresspiegel","noise_settings.structures":"Strukturen","noise_settings.structures.stronghold":"Festung","noise_settings.structures.stronghold.count":"Anzahl","noise_settings.structures.stronghold.distance":"Distanz","noise_settings.structures.stronghold.spread":"Ausbreitung","noise_settings.structures.structures":"Strukturen","player.advancements":"Fortschritte","player.advancements.entry":"Fortschritt","player.gamemode":"Spielmodus","player.level":"Erfahrungslevel","player.recipes":"Rezepte","player.stats":"Statistiken","player.stats.entry":"Statistik","pos_rule_test.always_true":"Immer „true“","pos_rule_test.axis":"Achse","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Achsenangepasste lineare Position","pos_rule_test.linear_pos":"Lineare Position","pos_rule_test.max_chance":"Maximale Wahrscheinlichkeit","pos_rule_test.max_dist":"Maximale Distanz","pos_rule_test.min_chance":"Minimale Wahrscheinlichkeit","pos_rule_test.min_dist":"Minimale Distanz","pos_rule_test.predicate_type":"Typ","processor.block_age.mossiness":"Moosigkeit","processor.block_ignore.blocks":"Blöcke","processor.block_ignore.blocks.entry":"Zustand","processor.block_rot.integrity":"Integrität","processor.gravity.heightmap":"Höhenfeld","processor.gravity.offset":"Verschiebung","processor.processor_type":"Typ","processor.rule.rules":"Regeln","processor.rule.rules.entry":"Regel","processor_list.processors":"Prozessoren","processor_list.processors.entry":"Prozessor","processor_rule.input_predicate":"Eingabenprädikat","processor_rule.location_predicate":"Ortsprädikat","processor_rule.output_nbt":"Ausgabe-NBT","processor_rule.output_state":"Ausgabeprädikat","processor_rule.position_predicate":"Positionsprädikat","processors.object":"Benutzerdefiniert","processors.string":"Referenz","range.binomial":"Binomialverteilung","range.max":"Maximum","range.min":"Minimum","range.n":"n","range.number":"Exakte Zahl","range.object":"Wertebereich","range.p":"p","range.uniform":"Gleichmäßige Verteilung","requirements":"Vorraussetzungen","rule_test.always_true":"Immer  „true“","rule_test.block":"Block","rule_test.block_match":"Blockvergleich","rule_test.block_state":"Zustand","rule_test.blockstate_match":"Blockzustandsvergleich","rule_test.predicate_type":"Typ","rule_test.probability":"Wahrscheinlichkeit","rule_test.random_block_match":"Zufälliger Blockvergleich","rule_test.random_blockstate_match":"Zufälliger Blockzustandsvergleich","rule_test.tag":"Aliasdaten","rule_test.tag_match":"Aliasdatenvergleich","slot.chest":"Truhe","slot.feet":"Schuhe","slot.head":"Kopfbedeckung","slot.legs":"Hose","slot.mainhand":"Haupthand","slot.offhand":"Nebenhand","statistic.stat":"Statistik","statistic.type":"Typ","statistic.type.broken":"Zerstört","statistic.type.crafted":"Hergestellt","statistic.type.custom":"Sonstige","statistic.type.dropped":"Fallen gelassen","statistic.type.killed":"Getötet","statistic.type.killedByTeam":"Von Team getötet","statistic.type.killed_by":"Getötet von","statistic.type.mined":"Abgebaut","statistic.type.picked_up":"Aufgehoben","statistic.type.teamkill":"Team getötet","statistic.type.used":"Verwendet","statistic.value":"Wert","status_effect.ambient":"Pastellfarben","status_effect.amplifier":"Stärke","status_effect.duration":"Wirkungsdauer","status_effect.visible":"Sichtbar","structure_feature.biome_temp":"Biomtemperatur","structure_feature.biome_temp.cold":"Kalt","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Anhäufungswahrscheinlichkeit","structure_feature.config":"Konfiguration","structure_feature.is_beached":"Gestranded","structure_feature.large_probability":"Große Wahrscheinlichkeit","structure_feature.portal_type":"Portaltyp","structure_feature.portal_type.desert":"Wüste","structure_feature.portal_type.jungle":"Dschungel","structure_feature.portal_type.mountain":"Berg","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ozean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Sumpf","structure_feature.probability":"Wahrscheinlichkeit","structure_feature.size":"Größe","structure_feature.start_pool":"","structure_feature.type":"Typ","structure_feature.type.mesa":"Tafelberge","structure_feature.type.normal":"Normal","surface_builder.config":"Konfiguration","surface_builder.top_material":"Oberes Material","surface_builder.type":"Typ","surface_builder.under_material":"Unteres Material","surface_builder.underwater_material":"Unterwassermaterial","table.type":"Typ","table.type.block":"Block","table.type.chest":"Truhe","table.type.empty":"Leer","table.type.entity":"Objekt","table.type.fishing":"Angeln","table.type.generic":"Sonstiges","tag.replace":"Ersetzen","tag.values":"Werte","template_element.element_type":"Typ","template_element.elements":"Elemente","template_element.feature":"Merkmal","template_element.location":"Ort","template_element.processors":"Prozessoren","template_element.projection":"Projektion","template_element.projection.rigid":"Reichhaltig","template_element.projection.terrain_matching":"Terrainanpassung","template_pool.elements":"Elemente","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Gewichtung","template_pool.fallback":"Rückfall","template_pool.name":"Name","text_component":"Text-Komponente","text_component.boolean":"Wahrheitswert","text_component.list":"Array","text_component.number":"Zahl","text_component.object":"Objekt","text_component.string":"Zeichenkette","text_component_object.block":"Block","text_component_object.bold":"Fett","text_component_object.clickEvent":"Klickevent","text_component_object.clickEvent.action":"Aktion","text_component_object.clickEvent.action.change_page":"Seite wechseln","text_component_object.clickEvent.action.copy_to_clipboard":"In die Zwischenablage kopieren","text_component_object.clickEvent.action.open_file":"Datei öffnen","text_component_object.clickEvent.action.open_url":"Link öffnen","text_component_object.clickEvent.action.run_command":"Befehl ausführen","text_component_object.clickEvent.action.suggest_command":"Befehl in Befehlszeile einfügen","text_component_object.clickEvent.value":"Wert","text_component_object.color":"Farbe","text_component_object.entity":"Objekt","text_component_object.extra":"Zusatz","text_component_object.font":"Schriftart","text_component_object.hoverEvent":"Tooltip","text_component_object.hoverEvent.action":"Aktion","text_component_object.hoverEvent.action.show_entity":"Objekt-Tooltip","text_component_object.hoverEvent.action.show_item":"Gegenstandstooltip","text_component_object.hoverEvent.action.show_text":"JSON-Text-Tooltip","text_component_object.hoverEvent.contents":"Inhalte","text_component_object.hoverEvent.value":"Wert","text_component_object.insertion":"Einfügung","text_component_object.interpret":"Interpretieren","text_component_object.italic":"Kursiv","text_component_object.keybind":"Tastenkombination","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Verschleiert","text_component_object.score":"Punktestand","text_component_object.score.name":"Name","text_component_object.score.objective":"Ziel","text_component_object.score.value":"Wert","text_component_object.selector":"Zielauswahl","text_component_object.storage":"NBT-Speicher","text_component_object.strikethrough":"Durchgestrichen","text_component_object.text":"Normaler Text","text_component_object.translate":"Übersetzbarer Text","text_component_object.underlined":"Unterstrichen","text_component_object.with":"Ersetzuingstexte für Übersetzung","tree_decorator.alter_ground.provider":"Zustandserzeuger","tree_decorator.beehive.probability":"Wahrscheinlichkeit","tree_decorator.cocoa.probability":"Wahrscheinlichkeit","tree_decorator.type":"Typ","true":"Wahr","trunk_placer.base_height":"Basishöhe","trunk_placer.height_rand_a":"Zufallshöhe A","trunk_placer.height_rand_b":"Zufallshöhe B","trunk_placer.type":"Typ","uniform_int.base":"Basis","uniform_int.number":"Exakte Zahl","uniform_int.object":"Zahl aus gleichmäßiger Verteilung","uniform_int.spread":"Ausbreitung","unset":"Zurücksetzen","world.bonus_chest":"Bonustruhe generieren","world.generate_features":"Merkmale generieren","world.seed":"Seed","world_settings.bonus_chest":"Bonustruhe generieren","world_settings.dimensions":"Dimensionen","world_settings.generate_features":"Merkmale generieren","world_settings.seed":"Weltseed","worldgen.warning":"Dieses Feature ist extrem experimentell. Es kann sich jederzeit in zukünftigen Versionen ändern. Spielabstürze beim Erstellen von Welten sind nicht ausgeschlossen.","worldgen/biome_source.checkerboard":"Schachbrettmuster","worldgen/biome_source.checkerboard.help":"Biome generieren in einem Schachbrettmuster.","worldgen/biome_source.fixed":"Festgesetzt","worldgen/biome_source.fixed.help":"Ein Biom für die ganze Welt.","worldgen/biome_source.multi_noise":"Mehrfachrauschen","worldgen/biome_source.multi_noise.help":"Rauschbasierte Chunkgenerierung mit konfigurierbaren Parametern.","worldgen/biome_source.the_end":"Das Ende","worldgen/biome_source.the_end.help":"Biomverteilung für das Ende.","worldgen/biome_source.vanilla_layered":"Vanilla Geschichtet","worldgen/biome_source.vanilla_layered.help":"Schichtenmodellbasierte Biomgenerierung für die Oberwelt.","worldgen/block_placer_type.column_placer":"Säule","worldgen/block_placer_type.double_plant_placer":"2-Block-Pflanze","worldgen/block_placer_type.simple_block_placer":"Einfach","worldgen/block_state_provider_type.forest_flower_provider":"Blumenwald","worldgen/block_state_provider_type.plain_flower_provider":"Ebenenblumen","worldgen/block_state_provider_type.rotated_block_provider":"Rotierter Block","worldgen/block_state_provider_type.simple_state_provider":"Einfacher Zustand","worldgen/block_state_provider_type.weighted_state_provider":"Gewichteter Zustand","worldgen/carver.canyon":"Schlucht","worldgen/carver.cave":"Höhle","worldgen/carver.nether_cave":"Netherhöhle","worldgen/carver.underwater_canyon":"Unterwasserschlucht","worldgen/carver.underwater_cave":"Unterwasser-Höhle","worldgen/chunk_generator.debug":"Debug-Welt","worldgen/chunk_generator.flat":"Superflach","worldgen/chunk_generator.noise":"Standard","worldgen/feature.iceberg":"Eisberg","worldgen/feature.kelp":"Seetang","worldgen/feature.lake":"See","worldgen/feature.large_dripstone":"Großer Tropfstein","worldgen/feature.ore":"Erz","worldgen/feature.replace_single_block":"Einzelnen Block ersetzen","worldgen/feature.sea_pickle":"Meeresgurke","worldgen/feature.seagrass":"Seegras","worldgen/feature.simple_block":"Einzelner Block","worldgen/feature.small_dripstone":"Kleiner Tropfstein","worldgen/feature.tree":"Baum","worldgen/feature.vines":"Ranken","worldgen/feature_size_type.three_layers_feature_size":"Drei Schichten","worldgen/feature_size_type.two_layers_feature_size":"Zwei Schichten","worldgen/foliage_placer_type.acacia_foliage_placer":"Akazie","worldgen/foliage_placer_type.blob_foliage_placer":"Kugel","worldgen/foliage_placer_type.bush_foliage_placer":"Busch","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Schwarzeiche","worldgen/foliage_placer_type.fancy_foliage_placer":"Verzweigt","worldgen/foliage_placer_type.jungle_foliage_placer":"Dschungel","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Riesenkiefer","worldgen/foliage_placer_type.pine_foliage_placer":"Kiefer","worldgen/foliage_placer_type.spruce_foliage_placer":"Fichte","worldgen/structure_pool_element.empty_pool_element":"Leer","worldgen/structure_pool_element.feature_pool_element":"Merkmal","worldgen/structure_pool_element.legacy_single_pool_element":"Veraltetes „Einfach“","worldgen/structure_pool_element.list_pool_element":"Liste","worldgen/structure_pool_element.single_pool_element":"Einfach","worldgen/structure_processor.blackstone_replace":"Schwarzsteinersetzung","worldgen/structure_processor.block_age":"Blockalter","worldgen/structure_processor.block_ignore":"Block ignorieren","worldgen/structure_processor.block_rot":"Blockverfall","worldgen/structure_processor.gravity":"Schwerkraft","worldgen/structure_processor.jigsaw_replacement":"Verbundblock Ersetzung","worldgen/structure_processor.lava_submerged_block":"Unter Lava liegender Block","worldgen/structure_processor.nop":"Nichts","worldgen/structure_processor.rule":"Regel","worldgen/tree_decorator_type.alter_ground":"Bodenveränderung","worldgen/tree_decorator_type.beehive":"Bienennest","worldgen/tree_decorator_type.cocoa":"Kakao","worldgen/tree_decorator_type.leave_vine":"Blattranken","worldgen/tree_decorator_type.trunk_vine":"Stammranken","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Schwarzeiche","worldgen/trunk_placer_type.fancy_trunk_placer":"Verzweigt","worldgen/trunk_placer_type.forking_trunk_placer":"Akazie","worldgen/trunk_placer_type.giant_trunk_placer":"Riesig","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Riesendschungel","worldgen/trunk_placer_type.straight_trunk_placer":"Gerade"}');export default e; -//# sourceMappingURL=de.f9c3209c.js.map diff --git a/assets/de.f9c3209c.js.map b/assets/de.f9c3209c.js.map deleted file mode 100644 index 311fb924..00000000 --- a/assets/de.f9c3209c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"de.f9c3209c.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/en.c743275d.js b/assets/en.c743275d.js new file mode 100644 index 00000000..e6f6fa5b --- /dev/null +++ b/assets/en.c743275d.js @@ -0,0 +1,2 @@ +var e=JSON.parse('{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can\'t spawn and chorus fruit can\'t teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Firstperson righthand","display_position.thirdperson_lefthand":"Firstperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.isBaby":"Baby","entity.isOnFire":"On fire","entity.isSneaking":"Sneaking","entity.isSprinting":"Sprinting","entity.isSwimming":"Swimming","entity.location":"Location","entity.nbt":"NBT","entity.player":"Player","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.disallowed_tag_prefix":"Tags cannot start with \\"#\\" here","error.disallowed_tag":"Tags aren\'t allowed here","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.expected_tag":"Expected a tag starting with \\"#\\"","error.height_multiple":"Height has to be multiple of %0%","error.invalid_empty_list":"Array cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.invalid_resource_location":"Resource location contains invalid characters","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.allowed_tree_position":"Allowed tree position","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","generator_structure.type":"Type","generator_structure.concentric_rings.distance":"Distance","generator_structure.concentric_rings.spread":"Spread","generator_structure.concentric_rings.count":"Count","generator_structure.random_spread.spread_type":"Spread type","generator_structure.random_spread.spread_type.linear":"Linear","generator_structure.random_spread.spread_type.triangular":"Triangular","generator_structure.random_spread.spacing":"Spacing","generator_structure.random_spread.separation":"Separation","generator_structure.random_spread.salt":"Salt","generator_structure.random_spread.locate_offset":"Locate offset","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Feature","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can\'t run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.stone_depth.secondary_depth_range":"Secondary depth range","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of \'Offset * Size vertical * 4\' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of \'Size * Size vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of \'Offset * Size Vertical * 4\' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of \'Size * Size Vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.string":"Reference","placed_feature.object":"Inline","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.string":"Single","tag.list":"Multiple","tag.list.string":"Reference","tag.list.object":"Inline","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.alter_ground.provider":"State provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/structure_placement.concentric_rings":"Concentric rings","worldgen/structure_placement.random_spread":"Random spread","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight"}');export default e; +//# sourceMappingURL=en.c743275d.js.map diff --git a/assets/en.c743275d.js.map b/assets/en.c743275d.js.map new file mode 100644 index 00000000..64495ec4 --- /dev/null +++ b/assets/en.c743275d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"en.c743275d.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/en.e6e6bb17.js b/assets/en.e6e6bb17.js deleted file mode 100644 index f30ea577..00000000 --- a/assets/en.e6e6bb17.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse('{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can\'t spawn and chorus fruit can\'t teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Firstperson righthand","display_position.thirdperson_lefthand":"Firstperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.isBaby":"Baby","entity.isOnFire":"On fire","entity.isSneaking":"Sneaking","entity.isSprinting":"Sprinting","entity.isSwimming":"Swimming","entity.location":"Location","entity.nbt":"NBT","entity.player":"Player","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.height_multiple":"Height has to be multiple of %0%","error.invalid_binomial":"Range cannot use the binomial type","error.invalid_empty_list":"Array cannot be empty","error.invalid_empty_string":"String cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_exact":"Range cannot use the constant type","error.invalid_pattern":"String is not valid: %0%","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Feature","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can\'t run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of \'Offset * Size vertical * 4\' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of \'Size * Size vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of \'Offset * Size Vertical * 4\' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of \'Size * Size Vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.alter_ground.provider":"State provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight"}');export default e; -//# sourceMappingURL=en.e6e6bb17.js.map diff --git a/assets/en.e6e6bb17.js.map b/assets/en.e6e6bb17.js.map deleted file mode 100644 index 0130f466..00000000 --- a/assets/en.e6e6bb17.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"en.e6e6bb17.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/index.4269576a.js b/assets/index.4269576a.js new file mode 100644 index 00000000..bd900aed --- /dev/null +++ b/assets/index.4269576a.js @@ -0,0 +1,2 @@ +var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,s as u,l as h,d as p,b as m,r as f,c as v,g,e as w,j as _,f as y,h as b,i as x,k,q as C,A,F as M,m as j,n as I,o as z,p as E,L,G as O,J as P,O as $,t as S,w as D,H as V,u as N,v as T,T as B,E as F,R,x as H,z as J,B as W,C as U,D as G,I as Y,K as Z,M as K,N as q}from"./vendor.104f0f91.js";var X;function Q({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function ee({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&se[e],t&&d("span",null,t))}function te({icon:e,label:t,large:n,doSelect:o,value:r,placeholder:a,onChange:i}){const s=void 0===i?()=>{}:e=>{const t=e.target.value;null==i||i(t)},l=u(null);return c((()=>{o&&l.current&&l.current.select()}),[o]),d("div",{class:"btn btn-input "+(n?"large-input":""),onClick:e=>e.stopPropagation()},e&&se[e],t&&d("span",null,t),d("input",{ref:l,type:"text",value:r,onChange:s,placeholder:a}))}function ne({cooldown:e,invert:t,initial:n}={}){const[o,r]=h(n),a=u(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function oe({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=u(null),s=u(),l=u(),d=u([0,0]),h=u(!1);c((()=>{const e=e=>{s.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===s.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-s.current[0],r=e.offsetY-s.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],h.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{h.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),h.current=!1})))),s.current=[e.offsetX,e.offsetY]},a=()=>{s.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const p=u(),m=u(0);return p.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;await t(r),a===m.current&&n.putImageData(r,0,0)},{canvas:i,redraw:p.current}}function re(){const[e,t]=h(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function ae(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function ie(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:i}=e,[c,u]=re();return d("div",s({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(ee,l(s({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},i))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(X||(X={}));const se={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function le({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},se.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}function ce(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const de=ce("TextInput","text",(e=>e)),ue=ce("NumberInput","number",(e=>Number(e))),he=ce("RangeInput","range",(e=>Number(e)));function pe({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=h(""),i=p((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(m,null,d(te,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},i.map((e=>d(ee,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===i.length&&d(ee,{label:null!=o?o:"No results"})))}var me=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","ref":"1.18.1"},{"id":"latest","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function fe(e){return"object"==typeof e&&null!==e}const ve=e=>("0"+e.toString(16)).substr(-2);function ge(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,ve).join("")}function we(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function _e(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new v.Path(["dimensions"]));e.set(new v.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new v.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new v.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new v.Path(["generator","seed"]),t,!0),e.set(new v.Path(["generator","biome_source","seed"]),t)}function ye(e){let t=0;for(let n=0;n=0&&(e=e.slice(0,t)),be(e)}function ke(e){const t=xe(e).replace(/^\//,"").replace(/\/$/,"");return me.generators.find((e=>e.url===t))}function Ce(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function Ae(e,t){const n=g(),o=Ce(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));w(`${t?be(t):xe(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function Me(e){const t=Math.abs(ye(e));return[t%256,(t>>8)%256,(t>>16)%256]}function je(e){return e*e}function Ie(e,t,n){return Math.max(e,Math.min(t,n))}function ze(e,t,n){return n<0?e:n>1?t:Ee(n,e,t)}function Ee(e,t,n){return t+e*(n-t)}function Le(e){return e instanceof Error?e.message:`${e}`}const Oe=f();function Pe(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;oasync function(e,t){const n=await(await fetch(`${Se}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${Se}/${e.id}/${t.id}.md`)).text()).map((r=>s({version:t,group:e,order:1e3*n+o},r)))}(e,Ne(n),t,o))))).flat()}(Ne(e),t))))).flat().map((e=>l(s({},e),{tags:[e.group.id,...e.tags]})))}return De}function Ne(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:fe(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const Te="https://raw.githubusercontent.com/misode/mcmeta";function Be(e,t){return`${Te}/${e.dynamic?t:`${e.ref}-${t}`}`}async function Fe(e,t,n){const o=me.versions.find((t=>t.id===e));o?(o.dynamic&&(""!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${Le(t)}`)}}((e=>e.startsWith(`${Te}/summary`))),localStorage.setItem("cached_latest_version","")),o.ref=""),await Promise.all([Re(o,t),He(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(me.versions)}`)}async function Re(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await We(`${Be(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",Le(n))}}async function He(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await We(`${Be(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Le(n))}}async function Je(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=me.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${Be(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Le(r)}`)}}async function We(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${Le(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const Ue=["1.15","1.16","1.17","1.18","latest"],Ge={},Ye={},Ze={1.15:_,1.16:y,1.17:b,1.18:x,latest:k};let Ke,qe,Xe;async function Qe(e){return Ge[e]||(Ge[e]=(async()=>{try{const t=Ze[e].getCollections(),n={};await Fe(e,t,n);const o=Ze[e].getSchemas(t);return Ge[e]={collections:t,schemas:o,blockStates:n},Ge[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Le(t)}`)}})()),Ge[e]}function et(e,t,n){const o=me.versions.findIndex((t=>t.id===e)),r=t?me.versions.findIndex((e=>e.id===t)):0,a=n?me.versions.findIndex((e=>e.id===n)):me.versions.length-1;return r<=o&&o<=a}const tt={},nt=function(e,t){if(!t)return e();if(void 0===Xe){const e=document.createElement("link").relList;Xe=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in tt)return;tt[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":Xe,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var ot,rt,at=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","latest":"Latest","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","presets":"Presets","preview":"Visualize","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),it=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:at});(rt=ot||(ot={})).ID_LANGUAGE="language",rt.ID_THEME="theme",rt.ID_VERSION="schema_version",rt.ID_INDENT="indentation",rt.ID_FORMAT="output_format",rt.ID_SOUNDS_VERSION="minecraft_sounds_version",rt.ID_PROJECTS="misode_projects",rt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(rt.ID_LANGUAGE))?e:"en"},rt.getTheme=function(){var e;return null!=(e=localStorage.getItem(rt.ID_THEME))?e:"dark"},rt.getVersion=function(){const e=localStorage.getItem(rt.ID_VERSION);return e&&Ue.includes(e)?e:"1.18"},rt.getIndent=function(){var e;return null!=(e=localStorage.getItem(rt.ID_INDENT))?e:"2_spaces"},rt.getFormat=function(){var e;return null!=(e=localStorage.getItem(rt.ID_FORMAT))?e:"json"},rt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(rt.ID_SOUNDS_VERSION))?e:"latest"},rt.getProjects=function(){const e=localStorage.getItem(rt.ID_PROJECTS);return e?JSON.parse(e):[pt]},rt.setLanguage=function(e){e&&localStorage.setItem(rt.ID_LANGUAGE,e)},rt.setTheme=function(e){e&&localStorage.setItem(rt.ID_THEME,e)},rt.setVersion=function(e){e&&localStorage.setItem(rt.ID_VERSION,e)},rt.setIndent=function(e){e&&localStorage.setItem(rt.ID_INDENT,e)},rt.setFormat=function(e){e&&localStorage.setItem(rt.ID_FORMAT,e)},rt.setSoundsVersion=function(e){e&&localStorage.setItem(rt.ID_SOUNDS_VERSION,e)},rt.setProjects=function(e){e&&localStorage.setItem(rt.ID_PROJECTS,JSON.stringify(e))};const st=C({lang:"none",locale:e=>e,changeLanguage:()=>{}}),lt={fallback:at};function ct(e,t,...n){var o,r,a,i,s;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(s=null!=(i=null!=(a=null==(o=lt[e])?void 0:o[t])?a:null==(r=lt.en)?void 0:r[t])?i:lt.fallback[t])?s:t,n)}async function dt(e){if(lt[e])return;const t=me.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return nt((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return nt((()=>Promise.resolve().then((function(){return it}))),void 0);case"../../locales/es.json":return nt((()=>import("./es.d3abba45.js")),void 0);case"../../locales/fr.json":return nt((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return nt((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return nt((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return nt((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return nt((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return nt((()=>import("./ru.7a24d253.js")),void 0);case"../../locales/sk.json":return nt((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return nt((()=>import("./zh-cn.b233fc7e.js")),void 0);case"../../locales/zh-tw.json":return nt((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return nt((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return nt((()=>import("./de.6c6a67f3.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return nt((()=>import("./en.c743275d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return nt((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return nt((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return nt((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return nt((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return nt((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return nt((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return nt((()=>import("./ru.9fcdec57.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return nt((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return nt((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return nt((()=>import("./zh-tw.292626d0.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);lt[e]=s(s({},n.default),o.default)}function ut(){return M(st)}function ht({children:e}){const[t,n]=h("none"),o=A(((e,...n)=>ct(t,e,...n)),[t]),r=A((async e=>{await dt(e),X.setLanguage(e),ot.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=ot.getLanguage();await Promise.all([dt("en"),..."en"!==e?[dt(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(st.Provider,{value:a},e)}const pt={name:"Drafts",namespace:"draft",files:[]},mt=C({project:pt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function ft(){return M(mt)}function vt({children:e}){const[t,n]=h(ot.getProjects()),[o,r]=h(pt.name),a=p((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:pt}),[t,o]),[i,c]=h(void 0),u=p((()=>{if(i)return a.files.find((e=>e.type===i[0]&&e.id===i[1]))}),[a,i]),m=A((e=>{ot.setProjects(e),n(e)}),[]),f=A((e=>{m(t.map((t=>t.name===o?s(s({},t),e):t)))}),[t,o]),v=A(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,i=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&i)return!1;f({files:a.files.map((o=>o.type===e&&o.id===t?l(s(s({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(i)return!1;f({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else f({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[f,a,u]),g=A(((e,t)=>{const n=me.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),w(be(n.url))}),[]),_=A((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:f,updateFile:v,openFile:g,closeFile:_};return d(mt.Provider,{value:y},e)}function gt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=me.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const wt=C({theme:"dark",changeTheme:()=>{}});function _t({children:e}){const[t,n]=h(ot.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const o=A((e=>{X.setTheme(e),ot.setTheme(e),n(e)}),[]),r={theme:t,changeTheme:o};return d(wt.Provider,{value:r},e)}const yt=C({title:"",changeTitle:()=>{}});function bt(e,t){const n=M(yt);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function xt({children:e}){const{locale:t}=ut(),[n,o]=h(t("title.home")),r={title:n,changeTitle:A(((e,t)=>{null!=t||(t=me.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(yt.Provider,{value:r},e)}const kt=C({version:"1.18",changeVersion:()=>{}});function Ct(){return M(kt)}function At({children:e}){const[t,n]=h(ot.getVersion()),o=Ce(g()).get("version");c((()=>{Ue.includes(o)&&t!==o&&n(o)}),[t,o]);const r=A((e=>{Ce(g()).has("version")&&Ae({version:e}),X.setVersion(e),ot.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(kt.Provider,{value:a},e)}let Mt=!1;const jt={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let It,zt;async function Et(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return Pe(n,It)||(It=Oe(n),zt=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new $(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?$t:Pt;break;case"overworld":e="1.18"===t.version?await async function(){return(await Je("1.18","dimension","overworld")).generator.biome_source}():e}if(e=v.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){Mt||(await S(D),Mt=!0,console.debug(`Loaded deepslate-rs from "${D}"`))}();const n=new $e,o=e=>"number"==typeof e?[e,e]:e,[r,a,i,l,c,d,u,h,p,m,f,v,g,w]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(_)[0]),d.push(o(_)[1]),u.push(o(y)[0]),h.push(o(y)[1]),p.push(o(b)[0]),m.push(o(b)[1]),f.push(o(x)[0]),v.push(o(x)[1]),g.push(k),w.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const _=j(new Float64Array(r),new Float64Array(a),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(p),new Float64Array(m),new Float64Array(f),new Float64Array(v),new Float64Array(g),new Int32Array(w)),y=I(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=z(_,y,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(r=n.getA(a[0]))?r:"unknown"},getBiomes:(e,t,o,r,a,i,s,l,c)=>[...z(_,y,e,t,o,r,a,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,n,o,r,a,i,l,c,d,u){const h=E(y,n,o,r,a,i,l,c,d,u),p=[];for(let m=0;m{var r;const a=e[`${n}_noise`];return a.firstOctave=Ie(null!=(r=a.firstOctave)?r:-7,-100,-1),new O(new P(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=je(l.altitude-a[0])+je(l.temperature-a[1])+je(l.humidity-a[2])+je(l.weirdness-a[3])+je(l.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(Nt(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return Ie(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(Ie(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let i=0;i=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=s{Ht(t,null==e?void 0:e.decorator,n).forEach((t=>Rt(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Rt(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void Rt(t,a.feature,n);Rt(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;Rt(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},Wt={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat(){var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200){var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,St[Ie(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>Ht(t,null==e?void 0:e.outer,n).flatMap((t=>Ht(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Tt(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(i=null==e?void 0:e.baseline)?i:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>Tt(t,Math.max(n.seaLevel,St[Ie(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,St[Ie(0,63,t[0])]);return Tt(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Tt(t,Math.max(n.seaLevel,St[Ie(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o[t],range:(e,t,n)=>{var o,r,a;return Tt(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return Tt(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,i;return Tt(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Tt(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Tt(t,St[Ie(0,63,t[0])]),magma:(e,t,n)=>Tt(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=St[Ie(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]i?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function Ut(e,t,n){var o;let r=[e];for(const a of t){Gt[Nt(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>Gt[Nt(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const Gt={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Tt(t,function(e,t){var n,o,r,a;if(!fe(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return Bt(e);switch(Nt(e.type)){case"constant":return Bt(e.value);case"uniform":{const n=Bt(e.min_inclusive),o=Bt(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=Bt(e.min_inclusive),a=Bt(e.max_inclusive),i=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(i+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=Bt(e.min_inclusive),o=Bt(e.max_inclusive),a=null!=(r=e.inner)?r:1,i=n+a+t.nextInt(o-n-a+1),s=n+t.nextInt(i-n);return n+t.nextInt(s-n+a)}case"trapezoid":{const n=Bt(e.min_inclusive),o=Bt(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const i=(o-n-r)/2,s=o-n-i;return n+t.nextInt(s+1)+t.nextInt(i+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>Tt(e,Math.max(t.seaLevel,St[Ie(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),i=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),s=Math.max(0,Math.ceil((i+(null!=n?n:0))*e));return new Array(s).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class Yt{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new P(e);this.minLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new V(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(i=n,s=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],Ee(s,Ee(i,l,c),Ee(i,d,u)))}var i,s,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,i=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*l/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=ze(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=ze(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=V.wrap(e*o*d),p=V.wrap(t*r*d),m=V.wrap(n*o*d),f=r*d,v=this.minLimitPerlinNoise.getOctaveNoise(u);v&&(s+=v.sample(h,p,m,f,t*f)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(h,p,m,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*a*d),V.wrap(t*i*d),V.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return ze(s/512,l/512,(c/10+1)/2)}}const Zt={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[50,50,50],"minecraft:netherrack":[100,40,40],"minecraft:end_stone":[200,200,140]};let Kt,qt,Xt=[];function Qt(e,t,n){var o,r,a;if(et(n.version,"1.18")){const{settings:r,generator:a}=function(e,t){const n=N.fromJson(v.DataModel.unwrapLists(e));n.octaves=an(n);const o=[e,`${t.seed}`];if(!Pe(o,Kt)){Kt=Oe(o),Xt=[];const e=new $("unknown");qt=new T(t.seed,e,n)}return{settings:n,generator:qt}}(e,n),i=new tn(-n.offset,n.width,r.noise.minY,r.noise.height);i.fill(a);const s=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class tn{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=Xt.find((e=>e.pos[0]===a));return i?(this.filled[r]=!0,i):new B(n,o,F.create(a,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,Xt.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const nn=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],on=L.overworld(),rn=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=ut(),[i,s]=h(2),[l,p]=h(void 0),[f,g]=h(new Set(["biomes"])),w=u([0,0]),_=u(1),y=u(void 0),b=BigInt(e.get(new v.Path(["generator","seed"]))),x=an(e.get(new v.Path(["generator","settings"]))),k=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return on;default:return L.fromJson({offset:0,factor:0,jaggedness:0})}return L.fromJson(v.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new v.Path(["generator","settings"]))),C=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,x,k):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:M,redraw:j}=oe({size:()=>[200/_.current,200/_.current],async draw(e){const n={octaves:x,shaper:k,biomeColors:{},layers:f,offset:w.current,scale:i,seed:b,res:_.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:i}=await Et(e,n),s=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],p=[c*n.scale,(200+c)*n.scale,n.res*n.scale],m=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...h,64,65,1,...p):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),v=0===f.length||null==(r=i.getClimate)?void 0:r.call(i,new Set(f),...h,64,65,1,...p);for(let g=0;g<200;g+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+g*u,o=g/n.res*200/n.res+e/n.res,r=(g+l)*n.scale,h=(e+c)*n.scale;let p=[50,50,50];if(n.layers.has("biomes"))p=Lt(null!=(a=null==m?void 0:m[o])?a:i.getBiome(r,64,h),n.biomeColors);else if(v&&f[0]){const e=v[o][f[0]],[t,n]=jt[f[0]],r=(e-t)/(n-t)*256;p=[r,r,r]}s[t]=p[0],s[t+1]=p[1],s[t+2]=p[2],s[t+3]=255}}(t,e,n),4===_.current&&(clearTimeout(y.current),y.current=setTimeout((()=>{_.current=1,j()}),150))},async onDrag(e,t){w.current[0]=w.current[0]+200*e,w.current[1]=w.current[1]+200*t,clearTimeout(y.current),_.current="multi_noise"===A?4:1,j()},async onHover(e,n){const r={octaves:x,shaper:k,biomeColors:{},layers:f,offset:w.current,scale:i,seed:b,res:1,version:o},a=await async function(e,t,n,o){const{biomeSource:r}=await Et(e,o),[a,i]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return r.getBiome(a,64,i)}(t,Math.floor(200*e),Math.floor(200*n),r);p(a)},onLeave(){p(void 0)}},[C,i,b,f]);c((()=>{n&&(_.current="multi_noise"===A?4:1,j())}),[C,i,b,f,n]);const I=e=>{w.current[0]=w.current[0]*i/e,w.current[1]=w.current[1]*i/e,s(e)};return d(m,null,d("div",{class:"controls preview-controls"},l&&d(ee,{label:l,class:"no-pointer"}),"multi_noise"===A&&d(ie,{icon:"stack",tooltip:a("configure_layers")},nn.map((e=>{const t=f.has(e);return d(ee,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{g(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(m,null,d(ee,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>I(1.5*i)}),d(ee,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>I(i/1.5)})),"multi_noise"===A&&d(ee,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>_e(e)})),d("canvas",{ref:M,width:"200",height:"200"}))};function an(e){if("string"!=typeof e){e=N.fromJson(v.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}const sn=({data:e,version:t,shown:n})=>{const{locale:o}=ut(),[r,a]=h(4),[i,s]=h(we()),{canvas:l,redraw:u}=oe({size:()=>[16*r,16*r],async draw(n){Vt(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),p=JSON.stringify(e);return c((()=>{n&&u()}),[p,r,i,n]),d(m,null,d("div",{class:"controls preview-controls"},d(ee,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(ee,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(ee,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>s(we())})),d("canvas",{ref:l,width:"64",height:"64"}))},ln=({data:e,shown:t,version:n})=>{const{locale:o}=ut(),[r,a]=h(we()),[i,s]=h(2),l=u([0,0]),p=JSON.stringify([e]),{canvas:f,redraw:g}=oe({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:i,seed:r,version:n};!function(e,t,n){const o=new P(n.seed),r=R.fromJson(v.DataModel.unwrapLists(e)),a=new O(o,r),i=-n.offset[0]-100,s=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+i)*n.scale,r=(e+s)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,g()}},[p,i,r]);c((()=>{t&&g()}),[p,i,r,t]);const w=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(m,null,d("div",{class:"controls preview-controls"},d(ee,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>w(1.5*i)}),d(ee,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>w(i/1.5)}),d(ee,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(we())})),d("canvas",{ref:f,width:"256",height:"256"}))},cn=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=ut(),[i,s]=h(we()),[l,p]=h(.2),[f,v]=h(.1),[g,w]=h(void 0),_=u(0),y=JSON.stringify([e,l,f]),b=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:x,redraw:k}=oe({size:()=>[b,b],async draw(t){const o={biomeDepth:f,biomeScale:l,offset:_.current,width:t.width,seed:i,version:n};Qt(e,t,o)},async onDrag(e){_.current+=e*b,k()},async onHover(t,n){var o,r;const a=b-Math.max(1,Math.ceil(n*b))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);w(`${a}`)},onLeave(){w(void 0)}},[y,i]);return c((()=>{t&&k()}),[y,i,t]),d(m,null,d("div",{class:"controls preview-controls"},g&&d(ee,{label:`Y = ${g}`,class:"no-pointer"}),et(n,void 0,"1.17")&&d(ie,{icon:"gear",tooltip:a("terrain_settings")},d(te,{label:a("preview.scale"),value:`${l}`,onChange:e=>p(Number(e))}),d(te,{label:a("preview.depth"),value:`${f}`,onChange:e=>v(Number(e))})),d(ee,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>s(we())})),d("canvas",{ref:x,width:b,height:b}))},dn=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function un({model:e,version:t,id:n,shown:o}){var r;const[,a]=h(0);if(ae(e,(()=>{a((e=>e+1))})),!e)return d(m,null);if("dimension"===n&&(null==(r=e.get(new v.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new v.Path(["generator","biome_source"]));if(n)return d(rn,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new v.Path([]));if(n)return d(ln,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new v.Path([]));if(n)return d(cn,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&et(t,"1.16","1.17")){const n=e.get(new v.Path([]));if(n)return d(sn,s({},{model:e,version:t,shown:o,data:n}))}return d(m,null)}function hn(e,t){return e.schema.hook(pn,new v.ModelPath(e),e.data,{blockStates:t})}const pn={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const s="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[v.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;s&&!Object.keys(null!=(a=s.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const i=a[e].hook(this,t.push(e),n[e],o);null!=i&&(r[e]=i)}));for(const i of Object.getOwnPropertySymbols(n))r[i]=n[i];return r}},mn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},fn={json:{parse:H.parse,stringify:(e,t)=>H.stringify(e,null,t)+"\n"},yaml:{parse:J.load,stringify:(e,t)=>J.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function vn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:i,onError:s}){const{locale:l}=ut(),[p,f]=h(ot.getIndent()),[g,w]=h(ot.getFormat()),_=u(null),y=u(null),b=u(),x=A(((e,t)=>{const n=hn(e,t);return fn[g].stringify(n,mn[p])}),[p,g]);c((()=>{b.current=()=>{if(t&&n)try{const e=x(t,n);e.length>=1e4?_.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":_.current.value=e}catch(e){s(`Error getting JSON output: ${Le(e)}`),console.error(e),_.current.value=""}}})),ae(t,(()=>{b.current()})),c((()=>{t&&b.current()}),[t]),c((()=>{b.current()}),[p,g]);c((()=>{o&&t&&n&&navigator.clipboard.writeText(x(t,n)).then((()=>{i()}))}),[o]),c((()=>{if(r&&t&&n&&y.current){const o=encodeURIComponent(x(t,n));y.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),y.current.setAttribute("download",`${e}.${g}`),y.current.click()}}),[r]),c((()=>{a&&_.current&&(_.current.value="",_.current.select())}),[a]);return d(m,null,d("div",{class:"controls"},d(ie,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(mn).map((([e])=>d(ee,{label:l(`indentation.${e}`),active:p===e,onClick:()=>{return t=e,ot.setIndent(t),void f(t);var t}}))),d("hr",null),Object.keys(fn).map((e=>d(ee,{label:l(`format.${e}`),active:g===e,onClick:()=>{return t=e,ot.setFormat(t),void w(t);var t}}))))),d("textarea",{ref:_,class:"source",onBlur:()=>{if(0!==_.current.value.length)try{const e=fn[g].parse(_.current.value);null==t||t.reset(v.DataModel.wrapLists(e),!1)}catch(e){s(`Error importing: ${Le(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:l("source_placeholder",g.toUpperCase()),"data-cy":"import-area"}),d("a",{ref:y,style:"display: none;"}))}class gn extends v.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const wn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","generator_structure.type"],_n=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],yn=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],bn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type"],xn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],kn=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],Cn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],An=new v.DataModel(v.MapNode(v.StringNode(),v.StringNode()),{historyMax:0});function Mn({model:e,lang:t,version:n,blockStates:o}){var r;const a=new v.ModelPath(e),[i,s,l]=e.schema.hook(jn,a,Oe(e.data),t,n,o,{});return(null==(r=null==s?void 0:s.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},i,s),d("div",{class:"node-body"},l)):l}const jn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,i)=>[null,d(En,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,s,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new v.ModelPath(o.getModel(),new v.Path(o.getArray(),[t.context])):o,[h,p,f]=c.node.hook(this,u,r,a,i,s,l);if(1===e.length)return[h,p,f];const g=(null==t?void 0:t.choiceContext)?new v.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new v.Path([],[t.context]):o,w=d("select",{value:c.type,onChange:n=>(n=>{var a;const i=null!=(a=e.find((e=>e.type===n)))?a:c,s=i.node.default(),l=i.change?i.change(v.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==s?void 0:s.type)?s.config.feature:s;o.model.set(o,v.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},Dn(a,g.contextPush(e.type))))));return[h,d(m,null,w,p),f]},list({children:e,config:t},n,o,r,a,i,c){const{expand:u,collapse:p,isToggled:f}=zn(),[g,w]=h(50),_=n.getContext().join(".");if(kn.includes(_)){return[d(m,null,[...Array(t.maxLength)].map(((e,t)=>d(Vn,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(m,null,[...Array(t.maxLength)].map(((t,s)=>{var l;return e.hook(this,n.modelPush(s),null==(l=null==o?void 0:o[s])?void 0:l.node,r,a,i,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":ct(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=v.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ge()},...o])}},se.plus_circle),d(m,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},m)=>{if(m===g)return d("div",{class:"node node-header"},d("label",null,ct(r,"entries_hidden",""+(o.length-g))),d("button",{onClick:()=>w(Math.min(g+50,o.length))},ct(r,"entries_hidden.more","50")),d("button",{onClick:()=>w(o.length)},ct(r,"entries_hidden.all")));if(m>g)return null;const v=n.push(m).contextPush("entry"),_="object"===e.type(v),y=f(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Vn,{lang:r,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ct(r,"expand")}\n${ct(r,"expand_all","Ctrl")}`,onClick:u(h)},se.chevron_right),d("label",null,Dn(r,v,`${m}`)),d(In,{key:h,path:v,value:t,schema:e}));return d(Pn,l(s({key:h,path:v,schema:e,value:t},{lang:r,version:a,states:i,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(m,0,{id:ge(),node:Oe(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},c),{index:(0===m?1:0)+(m===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ct(r,"collapse")}\n${ct(r,"collapse_all","Ctrl")}`,onClick:p(h)},se.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ct(r,"remove"),onClick:()=>v.set(void 0)},se.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":ct(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[m-1],e[m]]=[e[m],e[m-1]],n.model.set(n,e)},disabled:0===m},se.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":ct(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[m+1],e[m]]=[e[m],e[m+1]],n.model.set(n,e)},disabled:m===o.length-1},se.chevron_down)))})),o&&o.length>0&&o.length<=g&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":ct(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=v.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ge()}])}},se.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c,u){var h,p,f,g,w;const{expand:_,collapse:y,isToggled:b}=zn(),x=new v.ModelPath(An,new v.Path([Sn(o.toString())])),k="block_state_map"===(null==(h=n.validation)?void 0:h.validator)?null==c?void 0:c[v.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?v.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,v.StringNode(null,{enum:t})]));return Object.entries(null!=(g=k.properties)?g:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),v.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c,u)}return[null,d(m,null,C.hook(this,x,null!=(w=x.get())?w:"",a,i,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":ct(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),v.DataModel.wrapLists(e.default()))}},se.plus_circle)),d(m,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var h,p,m,f;const g=o.modelPush(t),w="object"===e.type(g),x=b(t);if(w&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(Vn,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ct(a,"expand")}\n${ct(a,"expand_all","Ctrl")}`,onClick:_(t)},se.chevron_right),d("label",null,t),d(In,{key:t,path:g,value:n,schema:e}));const C=k?v.StringNode(null,{enum:null!=(p=null==(h=k.properties)?void 0:h[t])?p:[]}):e;(null==(m=null==k?void 0:k.properties)?void 0:m[t])&&"string"==typeof n&&!(null==(f=k.properties)?void 0:f[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(Pn,l(s({key:t,schema:C,path:g,value:n},{lang:a,version:i,states:c,ctx:u}),{label:t}),w&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ct(a,"collapse")}\n${ct(a,"collapse_all","Ctrl")}`,onClick:y(t)},se.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ct(a,"remove"),onClick:()=>g.set(void 0)},se.trashcan))})))]},number:(e,t,n,o,r,a,i)=>[null,d(Ln,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u,h){var p;const{expand:f,collapse:g,isToggled:w}=zn();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&fe(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Bn(n,o),a={type:e.type,config:v.ObjectNode({decorators:v.ListNode(Ke),feature:qe},{context:"feature.decorated"})},i=v.ObjectNode(a,{context:"feature"}),s=new v.Path(["config","feature"]),l=new v.Path(["config","decorators"]),c=t.getModel(),d=new gn(i,(e=>{if(e.startsWith(s))return new v.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new v.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new v.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return Bn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];Bn(c.data,o);const r=new v.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(s);return c.set(new v.Path,Fn(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];Bn(c.data,t),t.splice(o,1);const r=Fn(e,t);return c.set(new v.Path,r,n)}{const r=new v.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new v.ModelPath(e,new v.Path(t.getArray(),["feature"])).push(n)}let _=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(v.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":ct(i,"expand"),onClick:t},se.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":ct(i,"remove"),onClick:e},se.trashcan)}const b=r.getContext().join(".");if(Cn.includes(b)){const e=w("");if(_=d(m,null,d("button",{class:"toggle tooltipped tip-se","aria-label":ct(i,e?"collapse":"expand"),onClick:e?g(""):f("")},e?se.chevron_down:se.chevron_right)),!e)return[_,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(s({},h),{loot:null==a?void 0:a.type}):h,k=d(m,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,l,h;const p=o(r,e),f=p.getContext().join(".");if(_n.includes(f))return null;const[v,g,w]=t.hook(this,p,a[e],i,c,u,x);if(!(v||g||(null!=(h=null==(l=null==(n=null==w?void 0:w.props)?void 0:n.children)?void 0:l.length)?h:0)>0))return null;const b="object"===t.type(p)&&yn.includes(f),k=bn.includes(f);return b||k?(_=d(m,null,_,d(Vn,{lang:i,path:p}),d(Nn,{lang:i,path:p}),v),y=d(m,null,y,g),b?w:null):d(Pn,s({key:e,schema:t,path:p,value:a[e]},{lang:i,version:c,states:u,ctx:x}))})));return[_,y,k]},string:(e,t,n,o,r,a,i)=>[null,d(On,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null]};function In({path:e,value:t}){var n,o,r,a,i;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const s of Object.values(null!=t?t:{}))if("string"==typeof s)return d("label",null,s.replace(/^minecraft:/,""));return null}function zn(){const[e,t]=h(new Map),[n,o]=h(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function En({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(m,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},ct(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},ct(o,"true")))}function Ln({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(m,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>_e(e.model),class:"tooltipped tip-se","aria-label":ct(r,"generate_new_seed")},se.sync))}function On({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:i,states:s}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),h=e.getContext().join("."),p=$n(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(xn.includes(h))return d("textarea",{value:null!=r?r:"",onBlur:c});if($n(n)&&!n.additional||wn.includes(h)){let t=new v.Path([]);return $n(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):$n(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},ct(a,"unset")),u.map((e=>d("option",{value:e},Dn(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if($n(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ge(),t=p?(e=>me.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(m,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${i}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":ct(a,"follow_reference")},se.link_external))}{const t=null==s?void 0:s[v.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const Pn=W((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:i,ctx:c,actions:u,children:h}){var p;const m=t.type(n),f=t.category(n),v=n.getContext().join("."),[g,w]=re(),_=l(s({},c),{depth:(null!=(p=c.depth)?p:0)+1});delete _.index;const[y,b,x]=t.hook(jn,n,o,r,a,i,_);return d("div",{class:`node ${m}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(Vn,{lang:r,path:n}),d(Nn,{lang:r,path:n}),h,y,d("label",null,null!=e?e:Dn(r,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(ee,{icon:e.icon,tooltip:ct(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:ct(r,e.label)))})),d("div",{class:"menu-item"},d(ee,{icon:"clippy",tooltip:ct(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(v)}),d("span",null,v)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Pe(e.ctx,t.ctx)&&Pe(e.value,t.value)));function $n(e){return!!(null==e?void 0:e.enum)}function Sn(e){var t,n=0;for(t=0;te.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=ct(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Tn("node-error","issue_opened",a)}function Nn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=ct(e,n);return o===n?null:Tn("node-help","info",o)}const Tn=(e,t,n)=>{const[o,r]=re();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},se[t],d("span",{class:"icon-popup"},n))};function Bn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:fe(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Bn(null!=(o=e.config.feature)?o:"",t)):e}function Fn(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Fn(e,t)}}}function Rn({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=ut();if(!t||!n||"none"===r)return d(m,null);const[a]=U((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(m,null);const[,i]=h(0);return ae(t,(()=>{i((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(Mn,s({},{model:t,lang:r,version:e,blockStates:n})))}const Hn={system:"device_desktop",dark:"moon",light:"sun"};function Jn(){const{lang:e,locale:t,changeLanguage:n}=ut(),{theme:o,changeTheme:r}=M(wt),{version:a}=Ct(),{title:i}=bt(),s=ke(g());return d("header",null,d("div",{class:"title"},d(G,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},Wn.home),d("h1",null,i),s&&d(ie,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},me.generators.filter((e=>e.category===(null==s?void 0:s.category)&&et(a,e.minVersion))).map((e=>d(ee,{label:t(e.id),active:e.id===s.id,onClick:()=>w(be(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(ie,{icon:"globe",tooltip:t("language")},me.languages.map((({code:t,name:o})=>d(ee,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(ie,{icon:Hn[o],tooltip:t("theme")},Object.entries(Hn).map((([e,n])=>d(ee,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},se.mark_github)))))}const Wn={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function Un({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:i,delayedPlay:s}){const{locale:l}=ut(),{version:p}=Ct(),[m,f]=h(!0),[v,g]=h(!1),[w,_]=h(!1),y=u([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,i;const s=e[t];_(0===(null!=(a=null==(n=null==s?void 0:s.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(i=null==s?void 0:s.sounds)?i:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=p,i=t,`${Be(me.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${i}.ogg`);var a,i;const s=new Y.Howl({src:[n],format:["ogg"],volume:r,rate:o});s.on("end",(()=>{g(!1)}));const l=()=>{m&&y.current.every((e=>"loaded"===e.state()))&&f(!1)};return"loaded"===s.state()?setTimeout((()=>l())):s.on("load",(()=>{l()})),s})),f(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(m||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),g(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{s&&setTimeout((()=>x()),50*n)}),[s]),c((()=>()=>k()),[]);const[C,A]=h(!1),M=u(void 0);return d("div",{class:`sound-config${m?" loading":v?" playing":""}${w?" invalid":""}`},d(ee,{class:"play",icon:w?"alert":m?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":m?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(de,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d(ue,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(he,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(he,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(ee,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),A(!0),void 0!==M.current&&clearTimeout(M.current),M.current=setTimeout((()=>{A(!1)}),2e3)}}),d(ee,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{i(),k()}}))}function Gn({title:e,desc:t,link:n,icon:o,children:r}){const a=d(m,null,d("div",{class:"tool-head"},o&&Wn[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function Yn({entries:e,onSelect:t,indent:n}){const o=p((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=p((()=>e.filter((e=>!e.includes("/")))),e),[a,i]=h(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(Zn,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void i(new Set(a));var t}}),!a.has(e)&&d(Yn,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(Zn,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function Zn({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},se[e],t)}function Kn({category:e}){const{locale:t}=ut();return bt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},me.generators.filter((t=>t.category===e)).map((e=>d(Gn,{title:t(e.id),link:be(e.url)})))))}function qn({}){const{locale:e}=ut(),[t,n]=h(null);bt(e("title.changelog"));const[o,r]=h([]);c((()=>{Ve().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const[a,i]=h(""),[s,l]=h([]),u=e=>{s.includes(e)?l(s.filter((t=>t!==e))):l([...s,e])},m=p((()=>{const e=a.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===s.length?o:o.filter((t=>{if(!s.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[o,a,s]),[f,v]=h(!0),g=p((()=>m.sort(((e,t)=>f?t.order-e.order:e.order-t.order))),[m,f]);return d("main",null,d(Q,{type:"text",id:"changelog"}),t&&d(le,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d(de,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:e("changelog.search"),value:a,onChange:i}),d(ee,{icon:f?"sort_desc":"sort_asc",label:f?"Newest first":"Oldest first",onClick:()=>v(!f)})),s.length>0&&d("div",{class:"changelog-tags"},s.map((e=>d(eo,{label:e,onClick:()=>l(s.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},g.map((e=>d(Xn,{change:e,activeTags:s,toggleTag:u})))))}function Xn({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Qn,s({},e.version)),d(Qn,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(eo,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:Z(e.content)}}))}function Qn({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function eo({label:e,active:t,onClick:n}){const o="breaking"===e?5:ye(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&se.alert,e)}function to({}){var e;const{locale:t}=ut(),{version:n,changeVersion:o}=Ct(),{project:r,file:a,updateFile:i,openFile:u,closeFile:p}=ft(),[f,_]=h(null),[y,b]=U();if(y)return d("main",null,d(le,{error:`Something went wrong rendering the generator: ${y.message}`,onDismiss:b}));const x=ke(g());if(!x)return d("main",null,d(le,{error:`Cannot find generator "${g()}"`}));const k=me.versions.filter((e=>et(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));bt(t("title.generator",t(x.id)),k),et(n,x.minVersion)||_(`The minimum version for this generator is ${x.minVersion}`),et(n,void 0,x.maxVersion)||_(`This generator is not available in versions above ${x.maxVersion}`);const C=Ce(g()).get("preset");c((()=>{A&&C&&R(C)}),[C]);const[A,M]=h(null),[j,I]=h(null);c((()=>{_(null),M(null),async function(e){return(await Qe(e)).blockStates}(n).then((e=>I(e))),async function(e,t){var n;if(!Ye[t]||Ye[t].version!==e){const r=await Qe(e);Ke=v.Reference(r.schemas,"configured_decorator"),qe=v.ChoiceNode([{type:"string",node:v.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:v.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=me.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new v.DataModel(n,{wrapLists:!0});Ye[t]?o.reset(Ye[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ye[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${Le(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return Ye[t].model}(n,x.id).then((async e=>{if(X.setGenerator(x.id),C){const t=await H(C);e.reset(v.DataModel.wrapLists(t),!1)}M(e)})).catch((e=>{console.error(e),_(Le(e))}))}),[n,x.id]);const[z,E]=h(!1);ae(A,(()=>{Ae({version:void 0,preset:void 0}),_(null),E(!0)}));const[L,O]=h(""),[P,$]=ne(),[S,D]=ne(),V=()=>{if(L!==(null==a?void 0:a.id)&&L&&A&&j){const e=hn(A,j);i(x.id,null==a?void 0:a.id,{id:L,data:e})?$():(D(),a&&O(null==a?void 0:a.id))}else a&&O(null==a?void 0:a.id)};c((()=>{a&&O(a.id)}),[a]),c((()=>{var e;A&&(O(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type?A.reset(v.DataModel.wrapLists(a.data)):A.reset(v.DataModel.wrapLists(A.schema.default()),!0),E(!1))}),[a,A]);const N=e=>{e.ctrlKey&&"z"===e.key?(X.generatorEvent("undo","Hotkey"),null==A||A.undo()):e.ctrlKey&&"y"===e.key&&(X.generatorEvent("redo","Hotkey"),null==A||A.redo())},T=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),A&&j&&a)){X.generatorEvent("save","Hotkey");const e=hn(A,j);i(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),$()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",T),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",T)})),[A,j,a]);const[B,F]=h([]);c((()=>{(async function(e){return(await Qe(e)).collections})(n).then((e=>{F(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),_(e.message)}))}),[n,x.id]);const R=e=>{H(e).then((t=>{null==A||A.reset(v.DataModel.wrapLists(t),!1),Ae({version:n,preset:e})}))},H=async e=>{var t,o,r;X.generatorEvent("load-preset",e);try{const a=await Je(n,null!=(t=x.path)?t:x.id,e),i=null==A?void 0:A.get(new v.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==i&&(a.generator.seed=i,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=i)),a}catch(a){_(Le(a))}},[J,W]=h(window.innerWidth>820),[G,Y]=h(0),[Z,K]=h(0),[q,te]=h(0),[oe,re]=ne(),[ce,ue]=h(!1),he=dn.includes(x.id)&&!("worldgen/configured_feature"===x.id&&et(n,"1.18"));ce&&!he&&ue(!1);let fe=1;he&&(fe+=1),J&&(fe+=2);return d(m,null,d("main",{class:ce?"has-preview":""},d(Q,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(ie,{icon:"repo",label:r.name,relative:!1},d(ee,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>w("/project")}),a&&d(ee,{icon:"file",label:t("project.new_file"),onClick:p}),d(pe,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d(de,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:L,onChange:O,onEnter:V,onBlur:V}),a&&d(ee,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&i(x.id,a.id,{})}})),z?d("div",{class:"status-icon"},se.dot_fill):P?d("div",{class:"status-icon active"},se.check):S&&d("div",{class:"status-icon danger"},se.x)),d("div",{class:"generator-controls"},d(ee,{icon:"upload",label:t("import"),onClick:()=>{X.generatorEvent("import"),W(!0),te(q+1)}}),d(ie,{icon:"archive",label:t("presets"),relative:!1},d(pe,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:B,onSelect:R})),d(ie,{icon:"tag",label:t(n),tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(ee,{label:t(e),active:e===n,onClick:()=>o(e)})))),d(ie,{icon:"kebab_horizontal",tooltip:t("more")},d(ee,{icon:"history",label:t("reset"),onClick:()=>{X.generatorEvent("reset"),null==A||A.reset(v.DataModel.wrapLists(A.schema.default()),!0)}}),d(ee,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),X.generatorEvent("undo","Menu"),null==A||A.undo()}}),d(ee,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),X.generatorEvent("redo","Menu"),null==A||A.redo()}})))),f&&d(le,{error:f,onDismiss:()=>_(null)}),d(Rn,l(s({},{model:A,version:n,blockStates:j}),{onError:_}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*fe}px;`},d("div",{class:`popup-action action-preview${he?" shown":""} tooltipped tip-nw`,"aria-label":t(ce?"hide_preview":"show_preview"),onClick:()=>{X.generatorEvent("toggle-preview",ce?"hidden":"visible"),ue(!ce),!ce&&J&&W(!1)}},ce?se.x_circle:se.play),d("div",{class:`popup-action action-download${J?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{X.generatorEvent("download"),K(Z+1)}},se.download),d("div",{class:`popup-action action-copy${J?" shown":""}${oe?" active":""} tooltipped tip-nw`,"aria-label":t(oe?"copied":"copy"),onClick:()=>{X.generatorEvent("copy"),Y(G+1)}},oe?se.check:se.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(J?"hide_output":"show_output"),onClick:()=>{X.generatorEvent("toggle-output",J?"hidden":"visible"),W(!J),Y(0),K(0),te(0)}},J?se.chevron_right:se.code)),d("div",{class:"popup-preview"+(ce?" shown":"")},d(un,l(s({},{model:A,version:n,id:x.id}),{shown:ce,onError:_}))),d("div",{class:"popup-source"+(J?" shown":"")},d(vn,l(s({},{model:A,blockStates:j,doCopy:G,doDownload:Z,doImport:q}),{name:null!=(e=x.schema)?e:"data",copySuccess:re,onError:_}))))}function no({}){const{locale:e}=ut();return bt(e("title.home")),d("main",null,d("div",{class:"home"},d(Gn,{title:"Data packs"},me.generators.filter((e=>!e.category)).map((t=>d(Gn,{title:e(t.id),link:be(t.url)}))),d(Gn,{title:e("worldgen"),link:"/worldgen/"})),d(Gn,{title:"Resource packs"},me.generators.filter((e=>"assets"===e.category)).map((t=>d(Gn,{title:e(t.id),link:be(t.url)})))),d(Gn,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(Gn,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(Gn,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(Gn,{title:"Technical Changelog",link:"/changelog/"})))}function oo({}){const{locale:e}=ut(),{project:t,openFile:n}=ft();bt(e("title.project",t.name));const o=p((()=>t.files.map(gt)),t.files);return d("main",null,d(Q,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(Yn,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function ro({}){const{locale:e}=ut(),{version:t,changeVersion:n}=Ct(),[o,r]=h(null);bt(e("title.sounds"));const[a,i]=h({}),p=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=me.versions.find((t=>t.id===e));try{const e=`${Be(t,"summary")}/sounds/data.min.json`;return await We(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Le(n)}`)}})(t).then(i).catch((e=>{console.error(e),r(Le(e))}))}),[t]);const[f,v]=h(""),[g,w]=h([]),_=()=>{w([{id:ge(),sound:f,delay:0,pitch:1,volume:1},...g])},y=e=>()=>{w(g.filter((t=>t.id!==e)))},[b,x]=h(0),k=u(null);return d("main",null,d(Q,{type:"text",id:"sounds"}),o&&d(le,{error:o,onDismiss:()=>r(null)}),p.length>0&&d(m,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(de,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:f,onChange:v,onEnter:_}),d(ee,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:_})),g.length>1&&d(ee,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(ee,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=g.some((e=>e.delay>0)),t=g.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(ie,{icon:"tag",label:t},me.versions.reverse().map((e=>d(ee,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},g.map((e=>{return d(Un,l(s(s({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{w(g.map((n=>n.id===t?s(s({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},p.map((e=>d("option",{key:e,value:e})))))}function ao(){return d(m,null,d(Jn,null),d(K,{onChange:e=>{setTimeout((()=>X.pageview(be(e.url))))}},d(no,{path:"/"}),d(Kn,{path:"/worldgen",category:"worldgen"}),d(Kn,{path:"/assets",category:"assets"}),d(ro,{path:"/sounds"}),d(qn,{path:"/changelog"}),d(oo,{path:"/project"}),d(to,{default:!0})))}function io(){return d(ht,null,d(_t,null,d(At,null,d(xt,null,d(vt,null,d(ao,null))))))}q(d(io,null),document.body); +//# sourceMappingURL=index.4269576a.js.map diff --git a/assets/index.4269576a.js.map b/assets/index.4269576a.js.map new file mode 100644 index 00000000..be525b00 --- /dev/null +++ b/assets/index.4269576a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.4269576a.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/Utils.ts","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn
\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn
\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t
\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, doSelect, value, placeholder, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\treturn
e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t
\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise,\n\tonDrag?: (dx: number, dy: number) => Promise,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef(null)\n\n\tconst dragStart = useRef()\n\tconst dragRequest = useRef()\n\tconst dragPending = useRef([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\tawait draw(img)\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
\n\t\t\n\t\t{active &&
\n\t\t\t{children}\n\t\t
}\n\t
\n}\n","export const Octicon = {\n\talert: ,\n\tarchive: ,\n\tarrow_left: ,\n\tarrow_right: ,\n\tcheck: ,\n\tchevron_down: ,\n\tchevron_right: ,\n\tchevron_up: ,\n\tclippy: ,\n\tcode: ,\n\tdash: ,\n\tdevice_desktop: ,\n\tdot_fill: ,\n\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tfile: ,\n\tfile_directory: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tlink_external: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\trepo: ,\n\tsearch: ,\n\tsort_asc: ,\n\tsort_desc: ,\n\tstack: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tterminal: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

{error}

\n\t\t

If you think this is a bug, you can report it on GitHub

\n\t
\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes\n\ntype BaseInputProps = Omit & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn \n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t\n\t\t
\n\t\t\t{results.map(v => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && }\n\t\t
\n\t\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map()\n}\n\nexport function setSeachParams(modifications: Record, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap {\n\tprivate readonly forward: Map\n\tprivate readonly backward: Map\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type ChangelogEntry = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: ChangelogEntry[] | Promise | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets'\n\nfunction mcmeta(version: Version, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nasync function getData(url: string, fn: (v: any) => T = (v: any) => v): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport * as latest from '@mcschema/java-1.18.2'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', 'latest'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n\tlatest: latest,\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\n\nasync function getVersion(id: VersionId): Promise {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { FixedBiome, LegacyRandom, NormalNoise, TerrainShaper } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: NoiseOctaves,\n\tshaper: TerrainShaper,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): string\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): string[]\n\tgetClimate?(layers: Set<keyof typeof LAYERS>, xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimate?.(new Set(layers), ...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome, options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<string | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn biomeSource.getBiome(xx, 64, zz)\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, options.shaper.toJson(), `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(state.biome as string)\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn (state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = options.version === '1.18' ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (options.version === '1.18') {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn BiomeIds.getA(ids[0]) ?? 'unknown'\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => BiomeIds.getA(id) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(layers, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tconst point = TerrainShaper.point(c, e, w)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t\t...layers.has('offset') && { offset: options.shaper.offset(point) },\n\t\t\t\t\t\t\t\t...layers.has('factor') && { factor: options.shaper.factor(point) },\n\t\t\t\t\t\t\t\t...layers.has('jaggedness') && { jaggedness: options.shaper.jaggedness(point) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn minBiome\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockPos, BlockState } from 'deepslate'\nimport { Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport { getOctaves } from '../components'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [50, 50, 50],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.fill(generator)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\tsettings.octaves = getOctaves(settings)\n\n\tconst newState = [state, `${options.seed}`]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly filled: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.filled = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.filled[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic fill(generator: NoiseChunkGenerator) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.filled[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tthis.filled[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { NoiseGeneratorSettings, TerrainShaper } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness', 'offset', 'factor', 'jaggedness'] as const\n\nconst OverworldShaper = TerrainShaper.overworld()\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\n\tconst shaper = getShaper(model.get(new Path(['generator', 'settings'])))\n\tconst state = shown ? calculateState(data, octaves, shaper) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: NoiseOctaves, shaper: TerrainShaper) {\n\treturn JSON.stringify([data, octaves, shaper.toJson()])\n}\n\nexport function getOctaves(obj: any): NoiseOctaves {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n\nexport function getShaper(obj: any): TerrainShaper {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn OverworldShaper\n\t\t\tdefault:\n\t\t\t\treturn TerrainShaper.fromJson({ offset: 0, factor: 0, jaggedness: 0 })\n\t\t}\n\t}\n\treturn TerrainShaper.fromJson(DataModel.unwrapLists(obj?.noise?.terrain_shaper))\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(_, y) {\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={`Y = ${focused}`} class=\"no-pointer\" />}\n\t\t\t{checkVersion(version, undefined, '1.17') &&\n\t\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</BtnMenu>\n\t\t\t}\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst OUTPUT_CHARS_LIMIT = 10000\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst source = useRef<HTMLTextAreaElement>(null)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\tif (output.length >= OUTPUT_CHARS_LIMIT) {\n\t\t\t\t\tsource.current.value = output.slice(0, OUTPUT_CHARS_LIMIT) + `\\n\\nOutput is too large to display (+${OUTPUT_CHARS_LIMIT} chars)\\nExport to view complete output\\n\\n`\n\t\t\t\t} else {\n\t\t\t\t\tsource.current.value = output\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\tsource.current.value = ''\n\t\t\t}\n\t\t}\n\t})\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tretransform.current()\n\t}, [indent, format])\n\n\tconst onImport = () => {\n\t\tif (source.current.value.length === 0) return\n\t\ttry {\n\t\t\tconst data = FORMATS[format].parse(source.current.value)\n\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t} catch (e) {\n\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && source.current) {\n\t\t\tsource.current.value = ''\n\t\t\tsource.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<textarea ref={source} class=\"source\" onBlur={onImport} spellcheck={false} autocorrect=\"off\" placeholder={locale('source_placeholder', format.toUpperCase())} data-cy=\"import-area\"></textarea>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'generator_structure.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, toggled ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{toggled ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!toggled) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { marked } from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { ChangelogEntry, ChangelogVersion } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<ChangelogEntry[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changelogs\n\t\treturn changelogs.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(true)\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog-controls\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t\t</div>\n\t\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{tags.map(tag => <Tag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t</div>}\n\t\t</div>\n\t\t<div class=\"changelog\">\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t<Change change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</main>\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <Tag label={tag} onClick={() => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nfunction Tag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn <main><ErrorPanel error={`Something went wrong rendering the generator: ${errorBoundary.message}`} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tselectPreset(currentPreset)\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t} else {\n\t\t\t\tmodel.reset(DataModel.wrapLists(model.schema.default()), true)\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tloadPreset(id).then(preset => {\n\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\tsetSeachParams({ version, preset: id })\n\t\t})\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={locale(version)} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={locale(v)} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"sounds\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","large","doSelect","value","placeholder","onChange","onInput","e","value2","target","ref","useRef","current","select","stopPropagation","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","s2","width","height","img","getImageData","ownCount","putImageData","hider","model","invalidated","listener","[object Object]","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","generatorEvent","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","search","sort_asc","sort_desc","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","evt","fn","onKeyDown","onEnter","key","displayName","name","TextInput","BaseInput","v","NumberInput","Number","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","useMemo","terms","trim","split","filter","every","includes","t","BtnInput","map","length","obj","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","MAX_SAFE_INTEGER","seed","dimensions","get","Path","set","keys","forEach","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","delete","encodeURIComponent","str","abs","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","forward","backward","this","defaultValue","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","versionId","collectionTarget","blockStateTarget","versions","getItem","matches","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","JSON","stringify","data","getData","mcmeta","register","properties","default","registry","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","latest","CachedDecorator","CachedFeature","scriptRel","collections","getCollections","blockStates","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","changeTheme","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","shaper","toJson","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","layers","climate","climate_noise","result","w","point","TerrainShaper","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","square","altitude","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","checkVersion","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:netherrack","minecraft:end_stone","generatorCache","chunkCache","NoiseGeneratorSettings","fromJson","getOctaves","NoiseChunkGenerator","getCached","LevelSlice","minY","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","filled","chunks","cached","Chunk","ChunkPos","create","Z","chunk","chunkIndex","OverworldShaper","overworld","BiomeSourcePreview","shown","setScale","focused","setFocused","setLayers","Set","refineTimeout","terrain_shaper","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimate","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","changeScale","newScale","BtnMenu","enabled","newSeed","legacyRandomSource","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","setBiomeScale","setBiomeDepth","worldY","min_y","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","k","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","getSerializedOutput","model2","blockStates2","getOutput","output","clipboard","writeText","click","data-cy","changeIndent","changeFormat","onBlur","wrapLists","spellcheck","autocorrect","toUpperCase","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","on","completed","copyActive","setCopyActive","copyTimeout","step","toFixed","desc","roots","groups","root","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setTags","toggleTag","filteredChangelogs","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","selectPreset","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.e0f5e068.js b/assets/index.e0f5e068.js deleted file mode 100644 index c0718970..00000000 --- a/assets/index.e0f5e068.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,s as u,l as h,d as p,b as m,r as f,c as v,g,e as w,j as _,f as y,h as b,i as x,q as k,A as C,F as A,k as M,m as j,n as I,o as z,L as E,G as L,J as O,O as P,p as $,w as S,H as D,t as V,u as N,T,E as B,R as F,v as R,x as H,z as J,B as W,C as U,D as G,I as Y,K as Z,N as K}from"./vendor.482c2e48.js";var q;function X({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function Q({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&ie[e],t&&d("span",null,t))}function ee({icon:e,label:t,large:n,doSelect:o,value:r,placeholder:a,onChange:i}){const s=void 0===i?()=>{}:e=>{const t=e.target.value;null==i||i(t)},l=u(null);return c((()=>{o&&l.current&&l.current.select()}),[o]),d("div",{class:"btn btn-input "+(n?"large-input":""),onClick:e=>e.stopPropagation()},e&&ie[e],t&&d("span",null,t),d("input",{ref:l,type:"text",value:r,onChange:s,placeholder:a}))}function te({cooldown:e,invert:t,initial:n}={}){const[o,r]=h(n),a=u(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function ne({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=u(null),s=u(),l=u(),d=u([0,0]),h=u(!1);c((()=>{const e=e=>{s.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===s.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-s.current[0],r=e.offsetY-s.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],h.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{h.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),h.current=!1})))),s.current=[e.offsetX,e.offsetY]},a=()=>{s.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const p=u(),m=u(0);return p.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;await t(r),a===m.current&&n.putImageData(r,0,0)},{canvas:i,redraw:p.current}}function oe(){const[e,t]=h(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function re(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function ae(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:i}=e,[c,u]=oe();return d("div",s({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(Q,l(s({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},i))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(q||(q={}));const ie={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function se({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},ie.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}function le(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const ce=le("TextInput","text",(e=>e)),de=le("NumberInput","number",(e=>Number(e))),ue=le("RangeInput","range",(e=>Number(e)));function he({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=h(""),i=p((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(m,null,d(ee,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},i.map((e=>d(Q,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===i.length&&d(Q,{label:null!=o?o:"No results"})))}var pe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function me(e){return"object"==typeof e&&null!==e}const fe=e=>("0"+e.toString(16)).substr(-2);function ve(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,fe).join("")}function ge(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function we(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new v.Path(["dimensions"]));e.set(new v.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new v.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new v.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new v.Path(["generator","seed"]),t,!0),e.set(new v.Path(["generator","biome_source","seed"]),t)}function _e(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function ye(e){return`/${e}/`.replaceAll("//","/")}function be(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),ye(e)}function xe(e){const t=be(e).replace(/^\//,"").replace(/\/$/,"");return pe.generators.find((e=>e.url===t))}function ke(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function Ce(e,t){const n=g(),o=ke(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));w(`${t?ye(t):be(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function Ae(e){const t=Math.abs(_e(e));return[t%256,(t>>8)%256,(t>>16)%256]}function Me(e){return e*e}function je(e,t,n){return Math.max(e,Math.min(t,n))}function Ie(e,t,n){return n<0?e:n>1?t:ze(n,e,t)}function ze(e,t,n){return t+e*(n-t)}function Ee(e){return e instanceof Error?e.message:`${e}`}const Le=f();function Oe(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;o<n;o++)if(!Oe(e[o],t[o]))return!1;return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!=o--;){const n=r[o];if(!Oe(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}class Pe{constructor(){this.forward=new Map,this.backward=new Map}set(e,t){this.forward.set(e,t),this.backward.set(t,e)}getA(e){return this.backward.get(e)}getB(e){return this.forward.get(e)}getOrPut(e,t){const n=this.forward.get(e);return void 0===n?(this.set(e,t),t):n}}const $e="https://raw.githubusercontent.com/misode/technical-changes/main";let Se=null;async function De(){if(!Se){const e=await(await fetch(`${$e}/index.json`)).json();Se=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${$e}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${$e}/${e.id}/${t.id}.md`)).text()).map((r=>s({version:t,group:e,order:1e3*n+o},r)))}(e,Ve(n),t,o))))).flat()}(Ve(e),t))))).flat().map((e=>l(s({},e),{tags:[e.group.id,...e.tags]})))}return Se}function Ve(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:me(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const Ne="https://raw.githubusercontent.com/misode/mcmeta";function Te(e,t){return`${Ne}/${e.dynamic?t:`${e.ref}-${t}`}`}async function Be(e,t,n){const o=pe.versions.find((t=>t.id===e));o?(o.dynamic&&(""!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${Ee(t)}`)}}((e=>e.startsWith(`${Ne}/summary`))),localStorage.setItem("cached_latest_version","")),o.ref=""),await Promise.all([Fe(o,t),Re(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(pe.versions)}`)}async function Fe(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await Je(`${Te(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",Ee(n))}}async function Re(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await Je(`${Te(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Ee(n))}}async function He(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=pe.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${Te(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Ee(r)}`)}}async function Je(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${Ee(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const We=["1.15","1.16","1.17","1.18"],Ue={},Ge={},Ye={1.15:_,1.16:y,1.17:b,1.18:x};let Ze,Ke,qe;async function Xe(e){return Ue[e]||(Ue[e]=(async()=>{try{const t=Ye[e].getCollections(),n={};await Be(e,t,n);const o=Ye[e].getSchemas(t);return Ue[e]={collections:t,schemas:o,blockStates:n},Ue[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Ee(t)}`)}})()),Ue[e]}function Qe(e,t,n){const o=pe.versions.findIndex((t=>t.id===e)),r=t?pe.versions.findIndex((e=>e.id===t)):0,a=n?pe.versions.findIndex((e=>e.id===n)):pe.versions.length-1;return r<=o&&o<=a}const et={},tt=function(e,t){if(!t)return e();if(void 0===qe){const e=document.createElement("link").relList;qe=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in et)return;et[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":qe,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var nt,ot,rt=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","presets":"Presets","preview":"Visualize","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),at=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:rt});(ot=nt||(nt={})).ID_LANGUAGE="language",ot.ID_THEME="theme",ot.ID_VERSION="schema_version",ot.ID_INDENT="indentation",ot.ID_FORMAT="output_format",ot.ID_SOUNDS_VERSION="minecraft_sounds_version",ot.ID_PROJECTS="misode_projects",ot.getLanguage=function(){var e;return null!=(e=localStorage.getItem(ot.ID_LANGUAGE))?e:"en"},ot.getTheme=function(){var e;return null!=(e=localStorage.getItem(ot.ID_THEME))?e:"dark"},ot.getVersion=function(){const e=localStorage.getItem(ot.ID_VERSION);return e&&We.includes(e)?e:"1.18"},ot.getIndent=function(){var e;return null!=(e=localStorage.getItem(ot.ID_INDENT))?e:"2_spaces"},ot.getFormat=function(){var e;return null!=(e=localStorage.getItem(ot.ID_FORMAT))?e:"json"},ot.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(ot.ID_SOUNDS_VERSION))?e:"latest"},ot.getProjects=function(){const e=localStorage.getItem(ot.ID_PROJECTS);return e?JSON.parse(e):[ht]},ot.setLanguage=function(e){e&&localStorage.setItem(ot.ID_LANGUAGE,e)},ot.setTheme=function(e){e&&localStorage.setItem(ot.ID_THEME,e)},ot.setVersion=function(e){e&&localStorage.setItem(ot.ID_VERSION,e)},ot.setIndent=function(e){e&&localStorage.setItem(ot.ID_INDENT,e)},ot.setFormat=function(e){e&&localStorage.setItem(ot.ID_FORMAT,e)},ot.setSoundsVersion=function(e){e&&localStorage.setItem(ot.ID_SOUNDS_VERSION,e)},ot.setProjects=function(e){e&&localStorage.setItem(ot.ID_PROJECTS,JSON.stringify(e))};const it=k({lang:"none",locale:e=>e,changeLanguage:()=>{}}),st={fallback:rt};function lt(e,t,...n){var o,r,a,i,s;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(s=null!=(i=null!=(a=null==(o=st[e])?void 0:o[t])?a:null==(r=st.en)?void 0:r[t])?i:st.fallback[t])?s:t,n)}async function ct(e){if(st[e])return;const t=pe.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return tt((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return tt((()=>Promise.resolve().then((function(){return at}))),void 0);case"../../locales/es.json":return tt((()=>import("./es.d3abba45.js")),void 0);case"../../locales/fr.json":return tt((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return tt((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return tt((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return tt((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return tt((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return tt((()=>import("./ru.7a24d253.js")),void 0);case"../../locales/sk.json":return tt((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return tt((()=>import("./zh-cn.b233fc7e.js")),void 0);case"../../locales/zh-tw.json":return tt((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return tt((()=>import("./cs.37c115ad.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return tt((()=>import("./de.f9c3209c.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return tt((()=>import("./en.e6e6bb17.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return tt((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return tt((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return tt((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return tt((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return tt((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return tt((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return tt((()=>import("./ru.92df5b59.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return tt((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return tt((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return tt((()=>import("./zh-tw.292626d0.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);st[e]=s(s({},n.default),o.default)}function dt(){return A(it)}function ut({children:e}){const[t,n]=h("none"),o=C(((e,...n)=>lt(t,e,...n)),[t]),r=C((async e=>{await ct(e),q.setLanguage(e),nt.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=nt.getLanguage();await Promise.all([ct("en"),..."en"!==e?[ct(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(it.Provider,{value:a},e)}const ht={name:"Drafts",namespace:"draft",files:[]},pt=k({project:ht,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function mt(){return A(pt)}function ft({children:e}){const[t,n]=h(nt.getProjects()),[o,r]=h(ht.name),a=p((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:ht}),[t,o]),[i,c]=h(void 0),u=p((()=>{if(i)return a.files.find((e=>e.type===i[0]&&e.id===i[1]))}),[a,i]),m=C((e=>{nt.setProjects(e),n(e)}),[]),f=C((e=>{m(t.map((t=>t.name===o?s(s({},t),e):t)))}),[t,o]),v=C(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,i=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&i)return!1;f({files:a.files.map((o=>o.type===e&&o.id===t?l(s(s({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(i)return!1;f({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else f({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[f,a,u]),g=C(((e,t)=>{const n=pe.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),w(ye(n.url))}),[]),_=C((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:f,updateFile:v,openFile:g,closeFile:_};return d(pt.Provider,{value:y},e)}function vt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=pe.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const gt=k({theme:"dark",changeTheme:()=>{}});function wt({children:e}){const[t,n]=h(nt.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const o=C((e=>{q.setTheme(e),nt.setTheme(e),n(e)}),[]),r={theme:t,changeTheme:o};return d(gt.Provider,{value:r},e)}const _t=k({title:"",changeTitle:()=>{}});function yt(e,t){const n=A(_t);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function bt({children:e}){const{locale:t}=dt(),[n,o]=h(t("title.home")),r={title:n,changeTitle:C(((e,t)=>{null!=t||(t=pe.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(_t.Provider,{value:r},e)}const xt=k({version:"1.18",changeVersion:()=>{}});function kt(){return A(xt)}function Ct({children:e}){const[t,n]=h(nt.getVersion()),o=ke(g()).get("version");c((()=>{We.includes(o)&&t!==o&&n(o)}),[t,o]);const r=C((e=>{ke(g()).has("version")&&Ce({version:e}),q.setVersion(e),nt.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(xt.Provider,{value:a},e)}let At=!1;const Mt={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let jt,It;async function zt(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return Oe(n,jt)||(jt=Le(n),It=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new P(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?Pt:Ot;break;case"overworld":e="1.18"===t.version?await async function(){return(await He("1.18","dimension","overworld")).generator.biome_source}():e}if(e=v.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){At||(await $(S),At=!0,console.debug(`Loaded deepslate-rs from "${S}"`))}();const n=new Pe,o=e=>"number"==typeof e?[e,e]:e,[r,a,i,l,c,d,u,h,p,m,f,v,g,w]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(_)[0]),d.push(o(_)[1]),u.push(o(y)[0]),h.push(o(y)[1]),p.push(o(b)[0]),m.push(o(b)[1]),f.push(o(x)[0]),v.push(o(x)[1]),g.push(k),w.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const _=M(new Float64Array(r),new Float64Array(a),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(p),new Float64Array(m),new Float64Array(f),new Float64Array(v),new Float64Array(g),new Int32Array(w)),y=j(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=I(_,y,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(r=n.getA(a[0]))?r:"unknown"},getBiomes:(e,t,o,r,a,i,s,l,c)=>[...I(_,y,e,t,o,r,a,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,n,o,r,a,i,l,c,d,u){const h=z(y,n,o,r,a,i,l,c,d,u),p=[];for(let m=0;m<h.length;m+=7){const[n,o,r,a,i]=h.slice(m,m+5),l=E.point(r,a,i);p.push(s(s(s({temperature:n,humidity:o,continentalness:r,erosion:a,weirdness:i},e.has("offset")&&{offset:t.shaper.offset(l)}),e.has("factor")&&{factor:t.shaper.factor(l)}),e.has("jaggedness")&&{jaggedness:t.shaper.jaggedness(l)}))}return p}}}{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=je(null!=(r=a.firstOctave)?r:-7,-100,-1),new L(new O(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=Me(l.altitude-a[0])+Me(l.temperature-a[1])+Me(l.humidity-a[2])+Me(l.weirdness-a[3])+Me(l.offset);e<i&&(i=e,s=n)}return s}}:new P("unknown")}}throw new Error("Unknown biome source")}(e,t)),{biomeSource:It}}function Et(e,t){var n;if(!e)return[128,128,128];const o=null!=(n=t[e])?n:Lt[e];return void 0===o?Ae(e):o}const Lt={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[128,128,255],"minecraft:end_highlands":[128,128,255],"minecraft:end_midlands":[128,128,255],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[128,128,255],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[128,128,255],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0]},Ot={type:"minecraft:multi_noise",seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:"minecraft:nether_wastes",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{altitude:0,temperature:0,humidity:-.5,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{altitude:0,temperature:.4,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{altitude:0,temperature:0,humidity:.5,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{altitude:0,temperature:-.5,humidity:0,weirdness:0,offset:.175}}]},Pt={type:"minecraft:multi_noise",biomes:[{biome:"minecraft:nether_wastes",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{temperature:0,humidity:-.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{temperature:.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{temperature:0,humidity:.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{temperature:-.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.175}}]};const $t=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],St=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function Dt(e,t,n){const o=new O(n.seed),r={placements:[],features:[],random:o,biomeInfoNoise:new D(o.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>o.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(Vt(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return je(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(je(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let i=0;i<n.size[0]/16;i+=1)for(let t=0;t<n.size[2]/16;t+=1)Qe(n.version,void 0,"1.17")?Ft([16*i,0,16*t],v.DataModel.unwrapLists(e),r):Wt([16*i,0,16*t],v.DataModel.unwrapLists(e.placement),r);const a=t.data;t.data.fill(255);for(const[i,s]of r.placements){if(i[0]<0||i[1]<0||i[2]<0||i[0]>=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=s<St.length?St[s]:Ae(r.features[s]);a[e]=je(50,205,o[0]),a[e+1]=je(50,205,o[1]),a[e+2]=je(50,205,o[2]),a[e+3]=255}for(let i=0;i<n.size[0];i+=1)for(let e=0;e<n.size[2];e+=1){if((Math.floor(i/16)+Math.floor(e/16))%2==0)continue;const n=e*(4*t.width)+4*i;for(let e=0;e<3;e+=1)a[n+e]=.85*a[n+e]}}function Vt(e){return e.startsWith("minecraft:")?e.slice(10):e}function Nt(e,t){return[[e[0],t,e[2]]]}function Tt(e,t){if(!me(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function Bt(e,t){const n=t.features.indexOf(e);return-1!=n?n:(t.features.push(e),t.features.length-1)}function Ft(e,t,n){var o;if("string"==typeof t)return void n.placements.push([e,Bt(t,n)]);const r=Vt(null!=(o=null==t?void 0:t.type)?o:"no_op"),a=Ht[r];a?a(t.config,e,n):n.placements.push([e,Bt(JSON.stringify(t),n)])}function Rt(e,t,n){var o;const r=Vt(null!=(o=null==t?void 0:t.type)?o:"nope"),a=Jt[r];return a?a(null==t?void 0:t.config,e,n):[e]}const Ht={decorated:(e,t,n)=>{Rt(t,null==e?void 0:e.decorator,n).forEach((t=>Ft(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Ft(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void Ft(t,a.feature,n);Ft(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;Ft(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},Jt={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat()<e.extra_chance&&(a+=null!=(r=e.extra_count)?r:0),new Array(a).fill(t)},count_multilayer:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200)<e.noise_level?e.below_noise:e.above_noise;return new Array(o).fill(t)},count_noise_biased:(e,t,n)=>{var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,$t[je(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>Rt(t,null==e?void 0:e.outer,n).flatMap((t=>Rt(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Nt(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(i=null==e?void 0:e.baseline)?i:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>Nt(t,Math.max(n.seaLevel,$t[je(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,$t[je(0,63,t[0])]);return Nt(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Nt(t,Math.max(n.seaLevel,$t[je(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o<n.seaLevel||0==n.nextInt((null!=(r=null==e?void 0:e.chance)?r:1)/8)){return[[n.nextInt(16)+t[0],o,n.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t,n)=>{var o,r,a;return Nt(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return Nt(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,i;return Nt(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Nt(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Nt(t,$t[je(0,63,t[0])]),magma:(e,t,n)=>Nt(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=$t[je(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]<a||t[1]>i?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function Wt(e,t,n){var o;let r=[e];for(const a of t){Ut[Vt(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>Ut[Vt(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const Ut={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Nt(t,function(e,t){var n,o,r,a;if(!me(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return Tt(e);switch(Vt(e.type)){case"constant":return Tt(e.value);case"uniform":{const n=Tt(e.min_inclusive),o=Tt(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=Tt(e.min_inclusive),a=Tt(e.max_inclusive),i=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(i+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=Tt(e.min_inclusive),o=Tt(e.max_inclusive),a=null!=(r=e.inner)?r:1,i=n+a+t.nextInt(o-n-a+1),s=n+t.nextInt(i-n);return n+t.nextInt(s-n+a)}case"trapezoid":{const n=Tt(e.min_inclusive),o=Tt(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const i=(o-n-r)/2,s=o-n-i;return n+t.nextInt(s+1)+t.nextInt(i+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>Nt(e,Math.max(t.seaLevel,$t[je(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),i=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),s=Math.max(0,Math.ceil((i+(null!=n?n:0))*e));return new Array(s).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a<e?t:n).fill(o)},random_offset:({xz_spread:e,y_spread:t},n,o)=>[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class Gt{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new O(e);this.minLimitPerlinNoise=new D(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new D(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new D(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new D(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(i=n,s=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],ze(s,ze(i,l,c),ze(i,d,u)))}var i,s,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,i=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*l/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=Ie(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=Ie(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=D.wrap(e*o*d),p=D.wrap(t*r*d),m=D.wrap(n*o*d),f=r*d,v=this.minLimitPerlinNoise.getOctaveNoise(u);v&&(s+=v.sample(h,p,m,f,t*f)/d);const g=this.maxLimitPerlinNoise.getOctaveNoise(u);if(g&&(l+=g.sample(h,p,m,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(D.wrap(e*a*d),D.wrap(t*i*d),D.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return Ie(s/512,l/512,(c/10+1)/2)}}const Yt={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[50,50,50],"minecraft:netherrack":[100,40,40],"minecraft:end_stone":[200,200,140]};let Zt,Kt,qt=[];function Xt(e,t,n){var o,r,a;if(Qe(n.version,"1.18")){const{settings:r,generator:a}=function(e,t){const n=V.fromJson(v.DataModel.unwrapLists(e));n.octaves=rn(n);const o=[e,`${t.seed}`];if(!Oe(o,Zt)){Zt=Le(o),qt=[];const e=new P("unknown");Kt=new N(t.seed,e,n)}return{settings:n,generator:Kt}}(e,n),i=new en(-n.offset,n.width,r.noise.minY,r.noise.height);i.fill(a);const s=t.data;for(let e=0;e<n.width;e+=1)for(let a=0;a<r.noise.height;a+=1){const l=4*e+4*(r.noise.height-a-1)*t.width,c=i.getBlockState([e-n.offset,a+r.noise.minY,0]),d=null!=(o=Yt[c.getName()])?o:[0,0,0];s[l]=d[0],s[l+1]=d[1],s[l+2]=d[2],s[l+3]=255}return}const i=new Gt(n.seed);i.reset(e.noise,null!=(r=n.biomeDepth)?r:0,null!=(a=n.biomeScale)?a:0,n.offset,n.width);const s=t.data,l=4*t.width;for(let c=0;c<n.width;c+=1){const t=i.iterateNoiseColumn(c-n.offset).reverse();for(let n=0;n<e.noise.height;n+=1){const e=n*l+4*c,o=Qt(t,n);s[e]=o,s[e+1]=o,s[e+2]=o,s[e+3]=255}}}function Qt(e,t){return e[t]>0?0:e[t+1]>0?150:255}class en{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=qt.find((e=>e.pos[0]===a));return i?(this.filled[r]=!0,i):new T(n,o,B.create(a,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,qt.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const tn=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],nn=E.overworld(),on=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=dt(),[i,s]=h(2),[l,p]=h(void 0),[f,g]=h(new Set(["biomes"])),w=u([0,0]),_=u(1),y=u(void 0),b=BigInt(e.get(new v.Path(["generator","seed"]))),x=rn(e.get(new v.Path(["generator","settings"]))),k=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return nn;default:return E.fromJson({offset:0,factor:0,jaggedness:0})}return E.fromJson(v.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new v.Path(["generator","settings"]))),C=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,x,k):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:M,redraw:j}=ne({size:()=>[200/_.current,200/_.current],async draw(e){const n={octaves:x,shaper:k,biomeColors:{},layers:f,offset:w.current,scale:i,seed:b,res:_.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:i}=await zt(e,n),s=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],p=[c*n.scale,(200+c)*n.scale,n.res*n.scale],m=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...h,64,65,1,...p):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),v=0===f.length||null==(r=i.getClimate)?void 0:r.call(i,new Set(f),...h,64,65,1,...p);for(let g=0;g<200;g+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+g*u,o=g/n.res*200/n.res+e/n.res,r=(g+l)*n.scale,h=(e+c)*n.scale;let p=[50,50,50];if(n.layers.has("biomes"))p=Et(null!=(a=null==m?void 0:m[o])?a:i.getBiome(r,64,h),n.biomeColors);else if(v&&f[0]){const e=v[o][f[0]],[t,n]=Mt[f[0]],r=(e-t)/(n-t)*256;p=[r,r,r]}s[t]=p[0],s[t+1]=p[1],s[t+2]=p[2],s[t+3]=255}}(t,e,n),4===_.current&&(clearTimeout(y.current),y.current=setTimeout((()=>{_.current=1,j()}),150))},async onDrag(e,t){w.current[0]=w.current[0]+200*e,w.current[1]=w.current[1]+200*t,clearTimeout(y.current),_.current="multi_noise"===A?4:1,j()},async onHover(e,n){const r={octaves:x,shaper:k,biomeColors:{},layers:f,offset:w.current,scale:i,seed:b,res:1,version:o},a=await async function(e,t,n,o){const{biomeSource:r}=await zt(e,o),[a,i]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return r.getBiome(a,64,i)}(t,Math.floor(200*e),Math.floor(200*n),r);p(a)},onLeave(){p(void 0)}},[C,i,b,f]);c((()=>{n&&(_.current="multi_noise"===A?4:1,j())}),[C,i,b,f,n]);const I=e=>{w.current[0]=w.current[0]*i/e,w.current[1]=w.current[1]*i/e,s(e)};return d(m,null,d("div",{class:"controls preview-controls"},l&&d(Q,{label:l,class:"no-pointer"}),"multi_noise"===A&&d(ae,{icon:"stack",tooltip:a("configure_layers")},tn.map((e=>{const t=f.has(e);return d(Q,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{g(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(m,null,d(Q,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>I(1.5*i)}),d(Q,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>I(i/1.5)})),"multi_noise"===A&&d(Q,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>we(e)})),d("canvas",{ref:M,width:"200",height:"200"}))};function rn(e){if("string"!=typeof e){e=V.fromJson(v.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}const an=({data:e,version:t,shown:n})=>{const{locale:o}=dt(),[r,a]=h(4),[i,s]=h(ge()),{canvas:l,redraw:u}=ne({size:()=>[16*r,16*r],async draw(n){Dt(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),p=JSON.stringify(e);return c((()=>{n&&u()}),[p,r,i,n]),d(m,null,d("div",{class:"controls preview-controls"},d(Q,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(Q,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(Q,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>s(ge())})),d("canvas",{ref:l,width:"64",height:"64"}))},sn=({data:e,shown:t,version:n})=>{const{locale:o}=dt(),[r,a]=h(ge()),[i,s]=h(2),l=u([0,0]),p=JSON.stringify([e]),{canvas:f,redraw:g}=ne({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:i,seed:r,version:n};!function(e,t,n){const o=new O(n.seed),r=F.fromJson(v.DataModel.unwrapLists(e)),a=new L(o,r),i=-n.offset[0]-100,s=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+i)*n.scale,r=(e+s)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,g()}},[p,i,r]);c((()=>{t&&g()}),[p,i,r,t]);const w=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(m,null,d("div",{class:"controls preview-controls"},d(Q,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>w(1.5*i)}),d(Q,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>w(i/1.5)}),d(Q,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(ge())})),d("canvas",{ref:f,width:"256",height:"256"}))},ln=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=dt(),[i,s]=h(ge()),[l,p]=h(.2),[f,v]=h(.1),[g,w]=h(void 0),_=u(0),y=JSON.stringify([e,l,f]),b=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:x,redraw:k}=ne({size:()=>[b,b],async draw(t){const o={biomeDepth:f,biomeScale:l,offset:_.current,width:t.width,seed:i,version:n};Xt(e,t,o)},async onDrag(e){_.current+=e*b,k()},async onHover(t,n){var o,r;const a=b-Math.max(1,Math.ceil(n*b))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0);w(`${a}`)},onLeave(){w(void 0)}},[y,i]);return c((()=>{t&&k()}),[y,i,t]),d(m,null,d("div",{class:"controls preview-controls"},g&&d(Q,{label:`Y = ${g}`,class:"no-pointer"}),Qe(n,void 0,"1.17")&&d(ae,{icon:"gear",tooltip:a("terrain_settings")},d(ee,{label:a("preview.scale"),value:`${l}`,onChange:e=>p(Number(e))}),d(ee,{label:a("preview.depth"),value:`${f}`,onChange:e=>v(Number(e))})),d(Q,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>s(ge())})),d("canvas",{ref:x,width:b,height:b}))},cn=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function dn({model:e,version:t,id:n,shown:o}){var r;const[,a]=h(0);if(re(e,(()=>{a((e=>e+1))})),!e)return d(m,null);if("dimension"===n&&(null==(r=e.get(new v.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new v.Path(["generator","biome_source"]));if(n)return d(on,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new v.Path([]));if(n)return d(sn,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new v.Path([]));if(n)return d(ln,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&Qe(t,"1.16","1.17")){const n=e.get(new v.Path([]));if(n)return d(an,s({},{model:e,version:t,shown:o,data:n}))}return d(m,null)}function un(e,t){return e.schema.hook(hn,new v.ModelPath(e),e.data,{blockStates:t})}const hn={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const s="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[v.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;s&&!Object.keys(null!=(a=s.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const i=a[e].hook(this,t.push(e),n[e],o);null!=i&&(r[e]=i)}));for(const i of Object.getOwnPropertySymbols(n))r[i]=n[i];return r}},pn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},mn={json:{parse:R.parse,stringify:(e,t)=>R.stringify(e,null,t)+"\n"},yaml:{parse:H.load,stringify:(e,t)=>H.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function fn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:i,onError:s}){const{locale:l}=dt(),[p,f]=h(nt.getIndent()),[g,w]=h(nt.getFormat()),_=u(null),y=u(null),b=u(),x=C(((e,t)=>{const n=un(e,t);return mn[g].stringify(n,pn[p])}),[p,g]);c((()=>{b.current=()=>{if(t&&n)try{const e=x(t,n);e.length>=1e4?_.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":_.current.value=e}catch(e){s(`Error getting JSON output: ${Ee(e)}`),console.error(e),_.current.value=""}}})),re(t,(()=>{b.current()})),c((()=>{t&&b.current()}),[t]),c((()=>{b.current()}),[p,g]);c((()=>{o&&t&&n&&navigator.clipboard.writeText(x(t,n)).then((()=>{i()}))}),[o]),c((()=>{if(r&&t&&n&&y.current){const o=encodeURIComponent(x(t,n));y.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),y.current.setAttribute("download",`${e}.${g}`),y.current.click()}}),[r]),c((()=>{a&&_.current&&(_.current.value="",_.current.select())}),[a]);return d(m,null,d("div",{class:"controls"},d(ae,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(pn).map((([e])=>d(Q,{label:l(`indentation.${e}`),active:p===e,onClick:()=>{return t=e,nt.setIndent(t),void f(t);var t}}))),d("hr",null),Object.keys(mn).map((e=>d(Q,{label:l(`format.${e}`),active:g===e,onClick:()=>{return t=e,nt.setFormat(t),void w(t);var t}}))))),d("textarea",{ref:_,class:"source",onBlur:()=>{if(0!==_.current.value.length)try{const e=mn[g].parse(_.current.value);null==t||t.reset(v.DataModel.wrapLists(e),!1)}catch(e){s(`Error importing: ${Ee(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:l("source_placeholder",g.toUpperCase()),"data-cy":"import-area"}),d("a",{ref:y,style:"display: none;"}))}class vn extends v.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const gn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type"],wn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],_n=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],yn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type"],bn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],xn=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale"],kn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],Cn=new v.DataModel(v.MapNode(v.StringNode(),v.StringNode()),{historyMax:0});function An({model:e,lang:t,version:n,blockStates:o}){var r;const a=new v.ModelPath(e),[i,s,l]=e.schema.hook(Mn,a,Le(e.data),t,n,o,{});return(null==(r=null==s?void 0:s.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},i,s),d("div",{class:"node-body"},l)):l}const Mn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,i)=>[null,d(zn,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,s,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new v.ModelPath(o.getModel(),new v.Path(o.getArray(),[t.context])):o,[h,p,f]=c.node.hook(this,u,r,a,i,s,l);if(1===e.length)return[h,p,f];const g=(null==t?void 0:t.choiceContext)?new v.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new v.Path([],[t.context]):o,w=d("select",{value:c.type,onChange:n=>(n=>{var a;const i=null!=(a=e.find((e=>e.type===n)))?a:c,s=i.node.default(),l=i.change?i.change(v.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==s?void 0:s.type)?s.config.feature:s;o.model.set(o,v.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},Sn(a,g.contextPush(e.type))))));return[h,d(m,null,w,p),f]},list({children:e,config:t},n,o,r,a,i,c){const{expand:u,collapse:p,isToggled:f}=In(),[g,w]=h(50),_=n.getContext().join(".");if(xn.includes(_)){return[d(m,null,[...Array(t.maxLength)].map(((e,t)=>d(Dn,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(m,null,[...Array(t.maxLength)].map(((t,s)=>{var l;return e.hook(this,n.modelPush(s),null==(l=null==o?void 0:o[s])?void 0:l.node,r,a,i,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":lt(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=v.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ve()},...o])}},ie.plus_circle),d(m,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},m)=>{if(m===g)return d("div",{class:"node node-header"},d("label",null,lt(r,"entries_hidden",""+(o.length-g))),d("button",{onClick:()=>w(Math.min(g+50,o.length))},lt(r,"entries_hidden.more","50")),d("button",{onClick:()=>w(o.length)},lt(r,"entries_hidden.all")));if(m>g)return null;const v=n.push(m).contextPush("entry"),_="object"===e.type(v),y=f(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Dn,{lang:r,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${lt(r,"expand")}\n${lt(r,"expand_all","Ctrl")}`,onClick:u(h)},ie.chevron_right),d("label",null,Sn(r,v,`${m}`)),d(jn,{key:h,path:v,value:t,schema:e}));return d(On,l(s({key:h,path:v,schema:e,value:t},{lang:r,version:a,states:i,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(m,0,{id:ve(),node:Le(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},c),{index:(0===m?1:0)+(m===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${lt(r,"collapse")}\n${lt(r,"collapse_all","Ctrl")}`,onClick:p(h)},ie.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":lt(r,"remove"),onClick:()=>v.set(void 0)},ie.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":lt(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[m-1],e[m]]=[e[m],e[m-1]],n.model.set(n,e)},disabled:0===m},ie.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":lt(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[m+1],e[m]]=[e[m],e[m+1]],n.model.set(n,e)},disabled:m===o.length-1},ie.chevron_down)))})),o&&o.length>0&&o.length<=g&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":lt(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=v.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ve()}])}},ie.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c,u){var h,p,f,g,w;const{expand:_,collapse:y,isToggled:b}=In(),x=new v.ModelPath(Cn,new v.Path([$n(o.toString())])),k="block_state_map"===(null==(h=n.validation)?void 0:h.validator)?null==c?void 0:c[v.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?v.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,v.StringNode(null,{enum:t})]));return Object.entries(null!=(g=k.properties)?g:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),v.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c,u)}return[null,d(m,null,C.hook(this,x,null!=(w=x.get())?w:"",a,i,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":lt(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),v.DataModel.wrapLists(e.default()))}},ie.plus_circle)),d(m,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var h,p,m,f;const g=o.modelPush(t),w="object"===e.type(g),x=b(t);if(w&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(Dn,{lang:a,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${lt(a,"expand")}\n${lt(a,"expand_all","Ctrl")}`,onClick:_(t)},ie.chevron_right),d("label",null,t),d(jn,{key:t,path:g,value:n,schema:e}));const C=k?v.StringNode(null,{enum:null!=(p=null==(h=k.properties)?void 0:h[t])?p:[]}):e;(null==(m=null==k?void 0:k.properties)?void 0:m[t])&&"string"==typeof n&&!(null==(f=k.properties)?void 0:f[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(On,l(s({key:t,schema:C,path:g,value:n},{lang:a,version:i,states:c,ctx:u}),{label:t}),w&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${lt(a,"collapse")}\n${lt(a,"collapse_all","Ctrl")}`,onClick:y(t)},ie.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":lt(a,"remove"),onClick:()=>g.set(void 0)},ie.trashcan))})))]},number:(e,t,n,o,r,a,i)=>[null,d(En,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u,h){var p;const{expand:f,collapse:g,isToggled:w}=In();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&me(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Tn(n,o),a={type:e.type,config:v.ObjectNode({decorators:v.ListNode(Ze),feature:Ke},{context:"feature.decorated"})},i=v.ObjectNode(a,{context:"feature"}),s=new v.Path(["config","feature"]),l=new v.Path(["config","decorators"]),c=t.getModel(),d=new vn(i,(e=>{if(e.startsWith(s))return new v.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new v.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new v.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return Tn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];Tn(c.data,o);const r=new v.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(s);return c.set(new v.Path,Bn(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];Tn(c.data,t),t.splice(o,1);const r=Bn(e,t);return c.set(new v.Path,r,n)}{const r=new v.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new v.ModelPath(e,new v.Path(t.getArray(),["feature"])).push(n)}let _=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(v.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":lt(i,"expand"),onClick:t},ie.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":lt(i,"remove"),onClick:e},ie.trashcan)}const b=r.getContext().join(".");if(kn.includes(b)){const e=w("");if(_=d(m,null,d("button",{class:"toggle tooltipped tip-se","aria-label":lt(i,e?"collapse":"expand"),onClick:e?g(""):f("")},e?ie.chevron_down:ie.chevron_right)),!e)return[_,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(s({},h),{loot:null==a?void 0:a.type}):h,k=d(m,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,l,h;const p=o(r,e),f=p.getContext().join(".");if(wn.includes(f))return null;const[v,g,w]=t.hook(this,p,a[e],i,c,u,x);if(!(v||g||(null!=(h=null==(l=null==(n=null==w?void 0:w.props)?void 0:n.children)?void 0:l.length)?h:0)>0))return null;const b="object"===t.type(p)&&_n.includes(f),k=yn.includes(f);return b||k?(_=d(m,null,_,d(Dn,{lang:i,path:p}),d(Vn,{lang:i,path:p}),v),y=d(m,null,y,g),b?w:null):d(On,s({key:e,schema:t,path:p,value:a[e]},{lang:i,version:c,states:u,ctx:x}))})));return[_,y,k]},string:(e,t,n,o,r,a,i)=>[null,d(Ln,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null]};function jn({path:e,value:t}){var n,o,r,a,i;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const s of Object.values(null!=t?t:{}))if("string"==typeof s)return d("label",null,s.replace(/^minecraft:/,""));return null}function In(){const[e,t]=h(new Map),[n,o]=h(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function zn({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(m,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},lt(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},lt(o,"true")))}function En({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(m,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>we(e.model),class:"tooltipped tip-se","aria-label":lt(r,"generate_new_seed")},ie.sync))}function Ln({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:i,states:s}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),h=e.getContext().join("."),p=Pn(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(bn.includes(h))return d("textarea",{value:null!=r?r:"",onBlur:c});if(Pn(n)&&!n.additional||gn.includes(h)){let t=new v.Path([]);return Pn(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):Pn(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},lt(a,"unset")),u.map((e=>d("option",{value:e},Sn(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(Pn(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ve(),t=p?(e=>pe.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(m,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${i}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":lt(a,"follow_reference")},ie.link_external))}{const t=null==s?void 0:s[v.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const On=J((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:i,ctx:c,actions:u,children:h}){var p;const m=t.type(n),f=t.category(n),v=n.getContext().join("."),[g,w]=oe(),_=l(s({},c),{depth:(null!=(p=c.depth)?p:0)+1});delete _.index;const[y,b,x]=t.hook(Mn,n,o,r,a,i,_);return d("div",{class:`node ${m}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(Dn,{lang:r,path:n}),d(Vn,{lang:r,path:n}),h,y,d("label",null,null!=e?e:Sn(r,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(Q,{icon:e.icon,tooltip:lt(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:lt(r,e.label)))})),d("div",{class:"menu-item"},d(Q,{icon:"clippy",tooltip:lt(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(v)}),d("span",null,v)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Oe(e.ctx,t.ctx)&&Oe(e.value,t.value)));function Pn(e){return!!(null==e?void 0:e.enum)}function $n(e){var t,n=0;for(t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n}function Sn(e,t,...n){const o=t.getContext();for(let r=0;r<o.length;r+=1){const t=o.slice(r).join("."),a=lt(e,t,...n);if(t!==a)return a}return o[o.length-1]}function Dn({lang:e,path:t,nested:n}){var o;t.model instanceof vn&&(t=t.model.map(t).withModel(t.model));const r=n?t.model.errors.getAll().filter((e=>e.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=lt(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Nn("node-error","issue_opened",a)}function Vn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=lt(e,n);return o===n?null:Nn("node-help","info",o)}const Nn=(e,t,n)=>{const[o,r]=oe();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},ie[t],d("span",{class:"icon-popup"},n))};function Tn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:me(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Tn(null!=(o=e.config.feature)?o:"",t)):e}function Bn(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Bn(e,t)}}}function Fn({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=dt();if(!t||!n||"none"===r)return d(m,null);const[a]=W((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(m,null);const[,i]=h(0);return re(t,(()=>{i((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(An,s({},{model:t,lang:r,version:e,blockStates:n})))}const Rn={system:"device_desktop",dark:"moon",light:"sun"};function Hn(){const{lang:e,locale:t,changeLanguage:n}=dt(),{theme:o,changeTheme:r}=A(gt),{version:a}=kt(),{title:i}=yt(),s=xe(g());return d("header",null,d("div",{class:"title"},d(U,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},Jn.home),d("h1",null,i),s&&d(ae,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},pe.generators.filter((e=>e.category===(null==s?void 0:s.category)&&Qe(a,e.minVersion))).map((e=>d(Q,{label:t(e.id),active:e.id===s.id,onClick:()=>w(ye(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(ae,{icon:"globe",tooltip:t("language")},pe.languages.map((({code:t,name:o})=>d(Q,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(ae,{icon:Rn[o],tooltip:t("theme")},Object.entries(Rn).map((([e,n])=>d(Q,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},ie.mark_github)))))}const Jn={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function Wn({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:i,delayedPlay:s}){const{locale:l}=dt(),{version:p}=kt(),[m,f]=h(!0),[v,g]=h(!1),[w,_]=h(!1),y=u([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,i;const s=e[t];_(0===(null!=(a=null==(n=null==s?void 0:s.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(i=null==s?void 0:s.sounds)?i:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=p,i=t,`${Te(pe.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${i}.ogg`);var a,i;const s=new G.Howl({src:[n],format:["ogg"],volume:r,rate:o});s.on("end",(()=>{g(!1)}));const l=()=>{m&&y.current.every((e=>"loaded"===e.state()))&&f(!1)};return"loaded"===s.state()?setTimeout((()=>l())):s.on("load",(()=>{l()})),s})),f(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(m||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),g(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{s&&setTimeout((()=>x()),50*n)}),[s]),c((()=>()=>k()),[]);const[C,A]=h(!1),M=u(void 0);return d("div",{class:`sound-config${m?" loading":v?" playing":""}${w?" invalid":""}`},d(Q,{class:"play",icon:w?"alert":m?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":m?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(ce,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d(de,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(ue,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(ue,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(Q,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),A(!0),void 0!==M.current&&clearTimeout(M.current),M.current=setTimeout((()=>{A(!1)}),2e3)}}),d(Q,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{i(),k()}}))}function Un({title:e,desc:t,link:n,icon:o,children:r}){const a=d(m,null,d("div",{class:"tool-head"},o&&Jn[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function Gn({entries:e,onSelect:t,indent:n}){const o=p((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=p((()=>e.filter((e=>!e.includes("/")))),e),[a,i]=h(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(Yn,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void i(new Set(a));var t}}),!a.has(e)&&d(Gn,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(Yn,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function Yn({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},ie[e],t)}function Zn({category:e}){const{locale:t}=dt();return yt(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},pe.generators.filter((t=>t.category===e)).map((e=>d(Un,{title:t(e.id),link:ye(e.url)})))))}function Kn({}){const{locale:e}=dt(),[t,n]=h(null);yt(e("title.changelog"));const[o,r]=h([]);c((()=>{De().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const[a,i]=h(""),[s,l]=h([]),u=e=>{s.includes(e)?l(s.filter((t=>t!==e))):l([...s,e])},m=p((()=>{const e=a.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===s.length?o:o.filter((t=>{if(!s.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[o,a,s]),[f,v]=h(!0),g=p((()=>m.sort(((e,t)=>f?t.order-e.order:e.order-t.order))),[m,f]);return d("main",null,d(X,{type:"text",id:"changelog"}),t&&d(se,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d(ce,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:e("changelog.search"),value:a,onChange:i}),d(Q,{icon:f?"sort_desc":"sort_asc",label:f?"Newest first":"Oldest first",onClick:()=>v(!f)})),s.length>0&&d("div",{class:"changelog-tags"},s.map((e=>d(Qn,{label:e,onClick:()=>l(s.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},g.map((e=>d(qn,{change:e,activeTags:s,toggleTag:u})))))}function qn({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Xn,s({},e.version)),d(Xn,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(Qn,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:Y(e.content)}}))}function Xn({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function Qn({label:e,active:t,onClick:n}){const o="breaking"===e?5:_e(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&ie.alert,e)}function eo({}){var e;const{locale:t}=dt(),{version:n,changeVersion:o}=kt(),{project:r,file:a,updateFile:i,openFile:u,closeFile:p}=mt(),[f,_]=h(null),[y,b]=W();if(y)return d("main",null,d(se,{error:`Something went wrong rendering the generator: ${y.message}`,onDismiss:b}));const x=xe(g());if(!x)return d("main",null,d(se,{error:`Cannot find generator "${g()}"`}));const k=pe.versions.filter((e=>Qe(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));yt(t("title.generator",t(x.id)),k),Qe(n,x.minVersion)||_(`The minimum version for this generator is ${x.minVersion}`),Qe(n,void 0,x.maxVersion)||_(`This generator is not available in versions above ${x.maxVersion}`);const C=ke(g()).get("preset");c((()=>{A&&C&&R(C)}),[C]);const[A,M]=h(null),[j,I]=h(null);c((()=>{_(null),M(null),async function(e){return(await Xe(e)).blockStates}(n).then((e=>I(e))),async function(e,t){var n;if(!Ge[t]||Ge[t].version!==e){const r=await Xe(e);Ze=v.Reference(r.schemas,"configured_decorator"),Ke=v.ChoiceNode([{type:"string",node:v.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:v.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=pe.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new v.DataModel(n,{wrapLists:!0});Ge[t]?o.reset(Ge[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ge[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${Ee(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return Ge[t].model}(n,x.id).then((async e=>{if(q.setGenerator(x.id),C){const t=await H(C);e.reset(v.DataModel.wrapLists(t),!1)}M(e)})).catch((e=>{console.error(e),_(Ee(e))}))}),[n,x.id]);const[z,E]=h(!1);re(A,(()=>{Ce({version:void 0,preset:void 0}),_(null),E(!0)}));const[L,O]=h(""),[P,$]=te(),[S,D]=te(),V=()=>{if(L!==(null==a?void 0:a.id)&&L&&A&&j){const e=un(A,j);i(x.id,null==a?void 0:a.id,{id:L,data:e})?$():(D(),a&&O(null==a?void 0:a.id))}else a&&O(null==a?void 0:a.id)};c((()=>{a&&O(a.id)}),[a]),c((()=>{var e;A&&(O(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type?A.reset(v.DataModel.wrapLists(a.data)):A.reset(v.DataModel.wrapLists(A.schema.default()),!0),E(!1))}),[a,A]);const N=e=>{e.ctrlKey&&"z"===e.key?(q.generatorEvent("undo","Hotkey"),null==A||A.undo()):e.ctrlKey&&"y"===e.key&&(q.generatorEvent("redo","Hotkey"),null==A||A.redo())},T=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),A&&j&&a)){q.generatorEvent("save","Hotkey");const e=un(A,j);i(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),$()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",T),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",T)})),[A,j,a]);const[B,F]=h([]);c((()=>{(async function(e){return(await Xe(e)).collections})(n).then((e=>{F(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),_(e.message)}))}),[n,x.id]);const R=e=>{H(e).then((t=>{null==A||A.reset(v.DataModel.wrapLists(t),!1),Ce({version:n,preset:e})}))},H=async e=>{var t,o,r;q.generatorEvent("load-preset",e);try{const a=await He(n,null!=(t=x.path)?t:x.id,e),i=null==A?void 0:A.get(new v.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==i&&(a.generator.seed=i,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=i)),a}catch(a){_(Ee(a))}},[J,U]=h(window.innerWidth>820),[G,Y]=h(0),[Z,K]=h(0),[ee,ne]=h(0),[oe,le]=te(),[de,ue]=h(!1),me=cn.includes(x.id)&&!("worldgen/configured_feature"===x.id&&Qe(n,"1.18"));de&&!me&&ue(!1);let fe=1;me&&(fe+=1),J&&(fe+=2);return d(m,null,d("main",{class:de?"has-preview":""},d(X,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(ae,{icon:"repo",label:r.name,relative:!1},d(Q,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>w("/project")}),a&&d(Q,{icon:"file",label:t("project.new_file"),onClick:p}),d(he,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d(ce,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:L,onChange:O,onEnter:V,onBlur:V}),a&&d(Q,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&i(x.id,a.id,{})}})),z?d("div",{class:"status-icon"},ie.dot_fill):P?d("div",{class:"status-icon active"},ie.check):S&&d("div",{class:"status-icon danger"},ie.x)),d("div",{class:"generator-controls"},d(Q,{icon:"upload",label:t("import"),onClick:()=>{q.generatorEvent("import"),U(!0),ne(ee+1)}}),d(ae,{icon:"archive",label:t("presets"),relative:!1},d(he,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:B,onSelect:R})),d(ae,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(Q,{label:e,active:e===n,onClick:()=>o(e)})))),d(ae,{icon:"kebab_horizontal",tooltip:t("more")},d(Q,{icon:"history",label:t("reset"),onClick:()=>{q.generatorEvent("reset"),null==A||A.reset(v.DataModel.wrapLists(A.schema.default()),!0)}}),d(Q,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),q.generatorEvent("undo","Menu"),null==A||A.undo()}}),d(Q,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),q.generatorEvent("redo","Menu"),null==A||A.redo()}})))),f&&d(se,{error:f,onDismiss:()=>_(null)}),d(Fn,l(s({},{model:A,version:n,blockStates:j}),{onError:_}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*fe}px;`},d("div",{class:`popup-action action-preview${me?" shown":""} tooltipped tip-nw`,"aria-label":t(de?"hide_preview":"show_preview"),onClick:()=>{q.generatorEvent("toggle-preview",de?"hidden":"visible"),ue(!de),!de&&J&&U(!1)}},de?ie.x_circle:ie.play),d("div",{class:`popup-action action-download${J?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{q.generatorEvent("download"),K(Z+1)}},ie.download),d("div",{class:`popup-action action-copy${J?" shown":""}${oe?" active":""} tooltipped tip-nw`,"aria-label":t(oe?"copied":"copy"),onClick:()=>{q.generatorEvent("copy"),Y(G+1)}},oe?ie.check:ie.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(J?"hide_output":"show_output"),onClick:()=>{q.generatorEvent("toggle-output",J?"hidden":"visible"),U(!J),Y(0),K(0),ne(0)}},J?ie.chevron_right:ie.code)),d("div",{class:"popup-preview"+(de?" shown":"")},d(dn,l(s({},{model:A,version:n,id:x.id}),{shown:de,onError:_}))),d("div",{class:"popup-source"+(J?" shown":"")},d(fn,l(s({},{model:A,blockStates:j,doCopy:G,doDownload:Z,doImport:ee}),{name:null!=(e=x.schema)?e:"data",copySuccess:le,onError:_}))))}function to({}){const{locale:e}=dt();return yt(e("title.home")),d("main",null,d("div",{class:"home"},d(Un,{title:"Data packs"},pe.generators.filter((e=>!e.category)).map((t=>d(Un,{title:e(t.id),link:ye(t.url)}))),d(Un,{title:e("worldgen"),link:"/worldgen/"})),d(Un,{title:"Resource packs"},pe.generators.filter((e=>"assets"===e.category)).map((t=>d(Un,{title:e(t.id),link:ye(t.url)})))),d(Un,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(Un,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(Un,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(Un,{title:"Technical Changelog",link:"/changelog/"})))}function no({}){const{locale:e}=dt(),{project:t,openFile:n}=mt();yt(e("title.project",t.name));const o=p((()=>t.files.map(vt)),t.files);return d("main",null,d(X,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(Gn,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function oo({}){const{locale:e}=dt(),{version:t,changeVersion:n}=kt(),[o,r]=h(null);yt(e("title.sounds"));const[a,i]=h({}),p=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=pe.versions.find((t=>t.id===e));try{const e=`${Te(t,"summary")}/sounds/data.min.json`;return await Je(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Ee(n)}`)}})(t).then(i).catch((e=>{console.error(e),r(Ee(e))}))}),[t]);const[f,v]=h(""),[g,w]=h([]),_=()=>{w([{id:ve(),sound:f,delay:0,pitch:1,volume:1},...g])},y=e=>()=>{w(g.filter((t=>t.id!==e)))},[b,x]=h(0),k=u(null);return d("main",null,d(X,{type:"text",id:"sounds"}),o&&d(se,{error:o,onDismiss:()=>r(null)}),p.length>0&&d(m,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(ce,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:f,onChange:v,onEnter:_}),d(Q,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:_})),g.length>1&&d(Q,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(Q,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=g.some((e=>e.delay>0)),t=g.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(ae,{icon:"tag",label:t},pe.versions.reverse().map((e=>d(Q,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},g.map((e=>{return d(Wn,l(s(s({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{w(g.map((n=>n.id===t?s(s({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},p.map((e=>d("option",{key:e,value:e})))))}function ro(){return d(m,null,d(Hn,null),d(Z,{onChange:e=>{setTimeout((()=>q.pageview(ye(e.url))))}},d(to,{path:"/"}),d(Zn,{path:"/worldgen",category:"worldgen"}),d(Zn,{path:"/assets",category:"assets"}),d(oo,{path:"/sounds"}),d(Kn,{path:"/changelog"}),d(no,{path:"/project"}),d(eo,{default:!0})))}function ao(){return d(ut,null,d(wt,null,d(Ct,null,d(bt,null,d(ft,null,d(ro,null))))))}K(d(ao,null),document.body); -//# sourceMappingURL=index.e0f5e068.js.map diff --git a/assets/index.e0f5e068.js.map b/assets/index.e0f5e068.js.map deleted file mode 100644 index bb95a63d..00000000 --- a/assets/index.e0f5e068.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.e0f5e068.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/Utils.ts","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn <div data-ea-publisher=\"misode-github-io\" data-ea-type={type} class=\"ad dark flat\" id={id}></div>\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn <div class={`btn${active ? ' active' : ''}${clazz ? ` ${clazz}` : ''}${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}`} onClick={onClick} aria-label={tooltip}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t</div>\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, doSelect, value, placeholder, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef<HTMLInputElement>(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\treturn <div class={`btn btn-input ${large ? 'large-input' : ''}`} onClick={e => e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t\t<input ref={ref} type=\"text\" value={value} onChange={onInput} placeholder={placeholder} />\n\t</div>\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef<number | undefined>(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise<unknown>,\n\tonDrag?: (dx: number, dy: number) => Promise<unknown>,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef<HTMLCanvasElement>(null)\n\n\tconst dragStart = useRef<Vec2 | undefined>()\n\tconst dragRequest = useRef<number>()\n\tconst dragPending = useRef<Vec2>([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise<unknown>>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\tawait draw(img)\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`btn-menu${relative === false ? ' no-relative' : ''}`} {...props}>\n\t\t<Btn {...{icon, label, tooltip, tooltipLoc}} onClick={setActive} />\n\t\t{active && <div class=\"btn-group\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>{error}</h3>\n\t\t<p>If you think this is a bug, you can report it <a href=\"https://github.com/misode/misode.github.io/issues/new\" target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn <input {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise<any> {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map<string, string>()\n}\n\nexport function setSeachParams(modifications: Record<string, string | undefined>, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap<A, B> {\n\tprivate readonly forward: Map<A, B>\n\tprivate readonly backward: Map<B, A>\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type ChangelogEntry = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: ChangelogEntry[] | Promise<ChangelogEntry[]> | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map<ChangelogEntry>(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets'\n\nfunction mcmeta(version: Version, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise<SoundEvents> {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nasync function getData<T = any>(url: string, fn: (v: any) => T = (v: any) => v): Promise<T> {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise<boolean>[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record<string, VersionData | Promise<VersionData>> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record<string, ModelData> = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n}\n\nexport let CachedDecorator: INode<any>\nexport let CachedFeature: INode<any>\n\nasync function getVersion(id: VersionId): Promise<VersionData> {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise<DataModel> {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise<CollectionRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise<BlockStateRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext<Locale>({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn <Locale.Provider value={value}>\n\t\t{children}\n\t</Locale.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial<Project>) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial<ProjectFile>) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext<ProjectContext>({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState<Project[]>(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState<string>(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial<Project>) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial<ProjectFile>) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn <Project.Provider value={value}>\n\t\t{children}\n\t</Project.Provider>\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tchangeTheme,\n\t}\n\n\treturn <Theme.Provider value={value}>\n\t\t{children}\n\t</Theme.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext<Title>({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { FixedBiome, LegacyRandom, NormalNoise, TerrainShaper } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: NoiseOctaves,\n\tshaper: TerrainShaper,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): string\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): string[]\n\tgetClimate?(layers: Set<keyof typeof LAYERS>, xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimate?.(new Set(layers), ...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome, options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<string | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn biomeSource.getBiome(xx, 64, zz)\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, options.shaper.toJson(), `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(state.biome as string)\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn (state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = options.version === '1.18' ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (options.version === '1.18') {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn BiomeIds.getA(ids[0]) ?? 'unknown'\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => BiomeIds.getA(id) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(layers, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tconst point = TerrainShaper.point(c, e, w)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t\t...layers.has('offset') && { offset: options.shaper.offset(point) },\n\t\t\t\t\t\t\t\t...layers.has('factor') && { factor: options.shaper.factor(point) },\n\t\t\t\t\t\t\t\t...layers.has('jaggedness') && { jaggedness: options.shaper.jaggedness(point) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn minBiome\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockPos, BlockState } from 'deepslate'\nimport { Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport { getOctaves } from '../components'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [50, 50, 50],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.fill(generator)\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\tsettings.octaves = getOctaves(settings)\n\n\tconst newState = [state, `${options.seed}`]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly filled: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.filled = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.filled[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic fill(generator: NoiseChunkGenerator) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.filled[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tthis.filled[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseOctaves } from 'deepslate'\nimport { NoiseGeneratorSettings, TerrainShaper } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness', 'offset', 'factor', 'jaggedness'] as const\n\nconst OverworldShaper = TerrainShaper.overworld()\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\n\tconst shaper = getShaper(model.get(new Path(['generator', 'settings'])))\n\tconst state = shown ? calculateState(data, octaves, shaper) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: NoiseOctaves, shaper: TerrainShaper) {\n\treturn JSON.stringify([data, octaves, shaper.toJson()])\n}\n\nexport function getOctaves(obj: any): NoiseOctaves {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n\nexport function getShaper(obj: any): TerrainShaper {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn OverworldShaper\n\t\t\tdefault:\n\t\t\t\treturn TerrainShaper.fromJson({ offset: 0, factor: 0, jaggedness: 0 })\n\t\t}\n\t}\n\treturn TerrainShaper.fromJson(DataModel.unwrapLists(obj?.noise?.terrain_shaper))\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(_, y) {\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={`Y = ${focused}`} class=\"no-pointer\" />}\n\t\t\t{checkVersion(version, undefined, '1.17') &&\n\t\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</BtnMenu>\n\t\t\t}\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst OUTPUT_CHARS_LIMIT = 10000\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst source = useRef<HTMLTextAreaElement>(null)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\tif (output.length >= OUTPUT_CHARS_LIMIT) {\n\t\t\t\t\tsource.current.value = output.slice(0, OUTPUT_CHARS_LIMIT) + `\\n\\nOutput is too large to display (+${OUTPUT_CHARS_LIMIT} chars)\\nExport to view complete output\\n\\n`\n\t\t\t\t} else {\n\t\t\t\t\tsource.current.value = output\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\tsource.current.value = ''\n\t\t\t}\n\t\t}\n\t})\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tretransform.current()\n\t}, [indent, format])\n\n\tconst onImport = () => {\n\t\tif (source.current.value.length === 0) return\n\t\ttry {\n\t\t\tconst data = FORMATS[format].parse(source.current.value)\n\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t} catch (e) {\n\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && source.current) {\n\t\t\tsource.current.value = ''\n\t\t\tsource.current.select()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<textarea ref={source} class=\"source\" onBlur={onImport} spellcheck={false} autocorrect=\"off\" placeholder={locale('source_placeholder', format.toUpperCase())} data-cy=\"import-area\"></textarea>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, toggled ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{toggled ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!toggled) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { marked } from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { ChangelogEntry, ChangelogVersion } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<ChangelogEntry[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changelogs\n\t\treturn changelogs.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(true)\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog-controls\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t\t</div>\n\t\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{tags.map(tag => <Tag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t</div>}\n\t\t</div>\n\t\t<div class=\"changelog\">\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t<Change change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</main>\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <Tag label={tag} onClick={() => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nfunction Tag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn <main><ErrorPanel error={`Something went wrong rendering the generator: ${errorBoundary.message}`} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tselectPreset(currentPreset)\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t} else {\n\t\t\t\tmodel.reset(DataModel.wrapLists(model.schema.default()), true)\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tloadPreset(id).then(preset => {\n\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\tsetSeachParams({ version, preset: id })\n\t\t})\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"sounds\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","large","doSelect","value","placeholder","onChange","onInput","e","value2","target","ref","useRef","current","select","stopPropagation","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","s2","width","height","img","getImageData","ownCount","putImageData","hider","model","invalidated","listener","[object Object]","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","generatorEvent","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","search","sort_asc","sort_desc","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","evt","fn","onKeyDown","onEnter","key","displayName","name","TextInput","BaseInput","v","NumberInput","Number","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","useMemo","terms","trim","split","filter","every","includes","t","BtnInput","map","length","obj","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","MAX_SAFE_INTEGER","seed","dimensions","get","Path","set","keys","forEach","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","delete","encodeURIComponent","str","abs","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","forward","backward","this","defaultValue","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","versionId","collectionTarget","blockStateTarget","versions","getItem","matches","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","JSON","stringify","data","getData","mcmeta","register","properties","default","registry","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","CachedDecorator","CachedFeature","scriptRel","collections","getCollections","blockStates","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","changeTheme","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","shaper","toJson","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","layers","climate","climate_noise","result","w","point","TerrainShaper","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","square","altitude","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","checkVersion","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:netherrack","minecraft:end_stone","generatorCache","chunkCache","NoiseGeneratorSettings","fromJson","getOctaves","NoiseChunkGenerator","getCached","LevelSlice","minY","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","filled","chunks","cached","Chunk","ChunkPos","create","Z","chunk","chunkIndex","OverworldShaper","overworld","BiomeSourcePreview","shown","setScale","focused","setFocused","setLayers","Set","refineTimeout","terrain_shaper","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimate","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","changeScale","newScale","BtnMenu","enabled","newSeed","legacyRandomSource","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","setBiomeScale","setBiomeDepth","worldY","min_y","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","k","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","getSerializedOutput","model2","blockStates2","getOutput","output","clipboard","writeText","click","data-cy","changeIndent","changeFormat","onBlur","wrapLists","spellcheck","autocorrect","toUpperCase","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","on","completed","copyActive","setCopyActive","copyTimeout","step","toFixed","desc","roots","groups","root","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setTags","toggleTag","filteredChangelogs","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","selectPreset","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index 381d5f49..ddc25a20 100644 --- a/assets/index.html +++ b/assets/index.html @@ -17,11 +17,11 @@ </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Assets Generators Minecraft 1.16, 1.17, 1.18 + Assets Generators Minecraft 1.17, 1.18, latest - - + + diff --git a/assets/model/index.html b/assets/model/index.html index 7eccda27..d444a058 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -17,11 +17,11 @@ - Model Generator Minecraft 1.16, 1.17, 1.18 + Model Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/assets/ru.92df5b59.js b/assets/ru.92df5b59.js deleted file mode 100644 index fe824095..00000000 --- a/assets/ru.92df5b59.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse('{"advancement.criteria":"Условие","advancement.display":"Отображение","advancement.display.announce_to_chat":"Сообщение в чате","advancement.display.background":"Фон","advancement.display.description":"Описание","advancement.display.frame":"Рамка","advancement.display.frame.challenge":"Испытание","advancement.display.frame.goal":"Цель","advancement.display.frame.task":"Обычная","advancement.display.help":"Если указано, достижение будет отображаться в интерфейсе достижений.","advancement.display.hidden":"Скрыто","advancement.display.icon":"Значок","advancement.display.icon.item":"Предмет значка","advancement.display.icon.nbt":"NBT значка","advancement.display.show_toast":"Всплывающее уведомление","advancement.display.title":"Заголовок","advancement.parent":"Предок","advancement.rewards":"Награды","advancement.rewards.experience":"Опыт","advancement.rewards.function":"Функция","advancement.rewards.loot":"Таблицы достижений","advancement.rewards.recipes":"Рецепты","advancement_trigger.bee_nest_destroyed":"Разрушил пчелиное гнездо","advancement_trigger.bred_animals":"Свёл животных","advancement_trigger.brewed_potion":"Сварил зелье","advancement_trigger.changed_dimension":"Сменил измерение","advancement_trigger.channeled_lightning":"Поразил «Громовержцем»","advancement_trigger.construct_beacon":"Построил маяк","advancement_trigger.consume_item":"Съел/Выпил предмет","advancement_trigger.cured_zombie_villager":"Излечил зомби-крестьянина","advancement_trigger.effects_changed":"Эффекты изменены","advancement_trigger.enchanted_item":"Зачаровал предмет","advancement_trigger.enter_block":"Находится в блоке","advancement_trigger.entity_hurt_player":"Получил урон","advancement_trigger.entity_killed_player":"Убит сущностью","advancement_trigger.filled_bucket":"Наполнил ведро","advancement_trigger.fishing_rod_hooked":"Подцепил крючком","advancement_trigger.hero_of_the_village":"Герой деревни","advancement_trigger.impossible":"Невозможный","advancement_trigger.inventory_changed":"Инвентарь изменён","advancement_trigger.item_durability_changed":"Прочность предмета изменена","advancement_trigger.item_used_on_block":"Использовал предмет на блоке","advancement_trigger.killed_by_crossbow":"Убил арбалетом","advancement_trigger.levitation":"Левитация","advancement_trigger.location":"Местоположение","advancement_trigger.nether_travel":"Переместился через Незер","advancement_trigger.placed_block":"Поставил блок","advancement_trigger.player_generates_container_loot":"Сгенерировал содержимое блока","advancement_trigger.player_hurt_entity":"Нанёс урон","advancement_trigger.player_killed_entity":"Убил сущность","advancement_trigger.recipe_unlocked":"Разблокировал рецепт","advancement_trigger.safely_harvest_honey":"Безопасно собрал мёд","advancement_trigger.shot_crossbow":"Выстрелил из арбалета","advancement_trigger.slept_in_bed":"Лёг на кровать","advancement_trigger.slide_down_block":"Скользит вниз по блоку","advancement_trigger.summoned_entity":"Призвал сущность","advancement_trigger.tame_animal":"Приручил животное","advancement_trigger.target_hit":"Попадание","advancement_trigger.thrown_item_picked_up_by_entity":"Выкинутый предмет подобран сущностью","advancement_trigger.tick":"Такт","advancement_trigger.used_ender_eye":"Использовал око Эндера","advancement_trigger.used_totem":"Использовал тотем","advancement_trigger.villager_trade":"Поторговал с крестьянином","advancement_trigger.voluntary_exile":"Вызвал рейд","attribute.generic_armor":"Броня","attribute.generic_armor_toughness":"Твёрдость брони","attribute.generic_attack_damage":"Урон","attribute.generic_attack_knockback":"Отбрасывание","attribute.generic_attack_speed":"Скорость атаки","attribute.generic_flying_speed":"Скорость полёта","attribute.generic_follow_range":"Диапазон преследования моба","attribute.generic_knockback_resistance":"Сопротивление отбрасыванию","attribute.generic_luck":"Удача","attribute.generic_max_health":"Максимальное здоровье","attribute.generic_movement_speed":"Скорость","attribute.horse.jump_strength":"Сила прыжка лошади","attribute.zombie.spawn_reinforcements":"Подкрепление зомби","attribute_modifier.amount":"Количество","attribute_modifier.attribute":"Атрибут","attribute_modifier.name":"Название","attribute_modifier.operation":"Действие","attribute_modifier.operation.addition":"Прибавление","attribute_modifier.operation.multiply_base":"Умножение базового","attribute_modifier.operation.multiply_total":"Умножение общего","attribute_modifier.slot":"Ячейки","attribute_modifier.slot.list":"Несколько","attribute_modifier.slot.string":"Одна","badge.experimental":"Экспериментальный","badge.unstable":"Нестабильный","biome.carvers":"Полости","biome.carvers.air":"Воздух","biome.carvers.liquid":"Жидкость","biome.category":"Категория","biome.creature_spawn_probability":"Шанс появления пассивных мобов","biome.depth":"Глубина","biome.depth.help":"Поднимает или опускает рельеф местности. Положительные значения считаются сушей, а отрицательные — океанами.","biome.downfall":"Влажность","biome.effects":"Эффекты","biome.effects.additions_sound":"Дополнительные звуки","biome.effects.additions_sound.sound":"Звук","biome.effects.additions_sound.tick_chance":"Шанс за такт","biome.effects.ambient_sound":"Звук окружения","biome.effects.fog_color":"Цвет тумана","biome.effects.foliage_color":"Цвет листьев","biome.effects.grass_color":"Цвет травы","biome.effects.grass_color_modifier":"Модификатор цвета травы","biome.effects.grass_color_modifier.dark_forest":"Тёмный лес","biome.effects.grass_color_modifier.none":"Нет","biome.effects.grass_color_modifier.swamp":"Болото","biome.effects.mood_sound":"Пещерный звук","biome.effects.mood_sound.block_search_extent":"Радиус поиска позиции","biome.effects.mood_sound.offset":"Смещение","biome.effects.mood_sound.sound":"Звук","biome.effects.mood_sound.tick_delay":"Задержка в тактах","biome.effects.music":"Музыка","biome.effects.music.max_delay":"Максимальная задержка","biome.effects.music.min_delay":"Минимальная задержка","biome.effects.music.replace_current_music":"Замена играющей музыки","biome.effects.music.sound":"Звук","biome.effects.particle":"Частица","biome.effects.particle.options":"Параметры","biome.effects.particle.options.type":"Тип частицы","biome.effects.particle.probability":"Шанс","biome.effects.sky_color":"Цвет неба","biome.effects.water_color":"Цвет воды","biome.effects.water_fog_color":"Цвет подводного тумана","biome.features":"Искажения","biome.features.entry":"Шаг %0%","biome.features.entry.entry":"Искажение","biome.player_spawn_friendly":"Дружественное появление игрока","biome.player_spawn_friendly.help":"Если «Да», точка появления в мире предпочтительно будет в этом биоме.","biome.precipitation":"Осадки","biome.precipitation.none":"Нет","biome.precipitation.rain":"Дождь","biome.precipitation.snow":"Снег","biome.scale":"Масштаб","biome.scale.help":"Растягивает местность по вертикали. Чем меньше значение, тем ровнее местность.","biome.spawn_costs":"Цена Появления","biome.spawn_costs.charge":"Заряд","biome.spawn_costs.energy_budget":"Бюджет Энергии","biome.spawners":"Появление мобов","biome.spawners.ambient":"Окружение","biome.spawners.creature":"Пассивные","biome.spawners.entry":"Появление","biome.spawners.entry.maxCount":"Максимальное количество","biome.spawners.entry.minCount":"Минимальное количество","biome.spawners.entry.type":"Тип","biome.spawners.entry.weight":"Вес","biome.spawners.misc":"Другие","biome.spawners.monster":"Монстр","biome.spawners.water_ambient":"Водное окружение","biome.spawners.water_creature":"Водные пассивные","biome.starts":"Начала строений","biome.starts.entry":"Строение","biome.starts.help":"Список настроенных строений.","biome.surface_builder":"Построитель поверхности","biome.temperature":"Температура","biome.temperature_modifier":"Модификатор температуры","biome.temperature_modifier.frozen":"Мороз","biome.temperature_modifier.none":"Нет","block.block":"ID блока","block.nbt":"NBT","block.state":"Состояние блока","block.tag":"Тег блоков","block_placer.column_placer.extra_size":"Дополнительный размер","block_placer.column_placer.min_size":"Минимальный размер","block_placer.type":"Тип","block_state.Name":"Блок","block_state.Properties":"Свойства","block_state_provider.rotated_block_provider.state":"Состояние","block_state_provider.simple_state_provider.state":"Состояние","block_state_provider.type":"Тип","block_state_provider.weighted_state_provider.entries":"Элементы","block_state_provider.weighted_state_provider.entries.entry.data":"Состояние","block_state_provider.weighted_state_provider.entries.entry.weight":"Вес","carver.config":"Параметры","carver.config.canyon.bottom_inclusive":"Дно Включительно","carver.config.canyon.shape.distance_factor":"Фактор Расстояния","carver.config.canyon.shape.horizontal_radius_factor":"Фактор Горизонтального Радиуса","carver.config.canyon.shape.thickness":"Толщина","carver.config.canyon.top_inclusive":"Потолок Включительно","carver.config.canyon.shape.vertical_radius_center_factor":"Коэффициент Центра Вертикального Радиуса","carver.config.canyon.shape.vertical_radius_default_factor":"Фактор Вертикального Радиуса по Умолчанию","carver.config.canyon.vertical_rotation":"Вертикальное Вращение","carver.config.canyon.shape.width_smoothness":"Гладкость по Ширине","carver.config.y_scale":"Шакала Y","carver.config.debug_settings":"Настройки Отладки","carver.config.debug_settings.debug_mode":"Режим Отладки","carver.config.probability":"Шанс","carver.type":"Тип","children":"Потомки","children.entry":"Элемент","condition.alternative.terms":"Условия","condition.block_state_property.block":"Блок","condition.block_state_property.properties":"Состояние блока","condition.condition":"Условие","condition.damage_source":"Повреждение","condition.entity_properties.entity":"Сущность","condition.entity_scores.entity":"Сущность","condition.entity_scores.scores":"Счёты","condition.entry":"Предикат","condition.inverted.term":"Выражение","condition.item":"Предмет","condition.killed_by_player.inverse":"Инвертировать","condition.list":"Несколько","condition.location":"Местоположение","condition.location_check.offsetX":"Смещение по X","condition.location_check.offsetY":"Смещение по Y","condition.location_check.offsetZ":"Смещение по Z","condition.object":"Простой","condition.random_chance.chance":"Шанс","condition.random_chance_with_looting.chance":"Шанс","condition.random_chance_with_looting.looting_multiplier":"Множитель «Добычи»","condition.reference.name":"ID предиката","condition.table_bonus.chances":"Шансы","condition.table_bonus.chances.entry":"Шанс","condition.table_bonus.enchantment":"Чары","condition.time_check.period":"Период","condition.time_check.period.help":"Если задан, время будет получено взятием остатка от деления времени на заданный период.","condition.time_check.value":"Значение","condition.value_check.range":"Диапазон","condition.value_check.value":"Значение","condition.weather_check.raining":"Дождь","condition.weather_check.thundering":"Гроза","conditions":"Условия","conditions.entry":"Условие","conditions.list":"Условия","conditions.object":"Устаревший","copy_source.block_entity":"Блок-сущность","copy_source.direct_killer":"Убийца-причина урона","copy_source.killer":"Убийца","copy_source.killer_player":"Игрок-убийца","copy_source.this":"Текущая сущность","criterion.bee_nest_destroyed.block":"Блок","criterion.bee_nest_destroyed.num_bees_inside":"Пчёл внутри","criterion.bred_animals.child":"Потомок","criterion.bred_animals.parent":"Предок","criterion.bred_animals.partner":"Партнёр","criterion.brewed_potion.potion":"Зелье","criterion.changed_dimension.from":"Откуда","criterion.changed_dimension.to":"Куда","criterion.channeled_lightning.victims":"Жертвы","criterion.channeled_lightning.victims.entry":"Сущность","criterion.conditions":"Условия","criterion.construct_beacon.beacon_level":"Уровень конструкции","criterion.consume_item.item":"Предмет","criterion.cured_zombie_villager.villager":"Крестьянин","criterion.cured_zombie_villager.zombie":"Зомби","criterion.effects_changed.effects":"Эффект","criterion.enchanted_item.item":"Предмет","criterion.enchanted_item.levels":"Уровень","criterion.enter_block.block":"Блок","criterion.enter_block.state":"Состояние","criterion.entity_hurt_player.damage":"Урон","criterion.entity_killed_player.entity":"Сущность-источник","criterion.entity_killed_player.killing_blow":"Смертельный удар","criterion.filled_bucket.item":"Предмет","criterion.fishing_rod_hooked.entity":"Подтянутая сущность","criterion.fishing_rod_hooked.item":"Предмет","criterion.hero_of_the_village.location":"Местоположение","criterion.inventory_changed.items":"Предметы","criterion.inventory_changed.items.entry":"Предмет","criterion.inventory_changed.slots":"Ячейки","criterion.inventory_changed.slots.empty":"Пустых ячеек","criterion.inventory_changed.slots.full":"Полных ячеек","criterion.inventory_changed.slots.occupied":"Занятых ячеек","criterion.item_durability_changed.delta":"Разница","criterion.item_durability_changed.durability":"Прочность","criterion.item_durability_changed.item":"Предмет","criterion.item_used_on_block.item":"Предмет","criterion.item_used_on_block.location":"Местоположение","criterion.killed_by_crossbow.unique_entity_types":"Уникальных типов сущностей","criterion.killed_by_crossbow.victims":"Жертвы","criterion.killed_by_crossbow.victims.entry":"Сущность","criterion.levitation.distance":"Расстояние","criterion.levitation.duration":"Длительность","criterion.location.location":"Местоположение","criterion.nether_travel.distance":"Расстояние","criterion.nether_travel.entered":"Местоположение входа","criterion.nether_travel.exited":"Местоположение выхода","criterion.placed_block.block":"Блок","criterion.placed_block.item":"Предмет","criterion.placed_block.location":"Местоположение","criterion.placed_block.state":"Состояние","criterion.player":"Игрок","criterion.player_generates_container_loot.loot_table":"Таблица добычи","criterion.player_hurt_entity.damage":"Урон","criterion.player_hurt_entity.entity":"Сущность-жертва","criterion.player_killed_entity.entity":"Сущность-жертва","criterion.player_killed_entity.killing_blow":"Смертельный удар","criterion.recipe_unlocked.recipe":"Рецепт","criterion.rod":"Удочка","criterion.safely_harvest_honey.block":"Блок","criterion.safely_harvest_honey.item":"Предмет","criterion.shot_crossbow.item":"Предмет","criterion.slept_in_bed.location":"Местоположение","criterion.slide_down_block.block":"Блок","criterion.summoned_entity.entity":"Сущность","criterion.tame_animal.entity":"Животное","criterion.target_hit.projectile":"Снаряд","criterion.target_hit.shooter":"Стрелок","criterion.target_hit.signal_strength":"Мощность сигнала","criterion.thrown_item_picked_up_by_entity.entity":"Сущность","criterion.thrown_item_picked_up_by_entity.item":"Предмет","criterion.trigger":"Триггер","criterion.used_ender_eye.distance":"Расстояние","criterion.used_totem.item":"Предмет тотема","criterion.villager_trade.item":"Купленный предмет","criterion.villager_trade.villager":"Крестьянин","criterion.voluntary_exile.location":"Местоположение","damage.blocked":"Заблокирован","damage.dealt":"Нанесённый урон","damage.source_entity":"Сущность-источник","damage.taken":"Полученный урон","damage.type":"Тип урона","damage_source.bypasses_armor":"Игнорирование брони","damage_source.bypasses_invulnerability":"Пустота","damage_source.bypasses_magic":"Голод","damage_source.direct_entity":"Сущность-причина урона","damage_source.is_explosion":"Взрыв","damage_source.is_fire":"Огонь","damage_source.is_lightning":"Молния","damage_source.is_magic":"Магия","damage_source.is_projectile":"Снаряд","damage_source.source_entity":"Сущность-источник урона","decorator.carving_mask.step":"Этап генерации","decorator.config":"Параметры","decorator.count.count":"Количество","decorator.count_extra.count":"Количество","decorator.count_extra.extra_chance":"Вероятность дополнительного","decorator.count_extra.extra_count":"Дополнительное количество","decorator.count_multilayer.count":"Количество","decorator.count_noise.above_noise":"Количество выше шума","decorator.count_noise.below_noise":"Количество ниже шума","decorator.count_noise.noise_level":"Уровень шума","decorator.count_noise_biased.noise_factor":"Множитель шума","decorator.count_noise_biased.noise_offset":"Смещение шума","decorator.count_noise_biased.noise_to_count_ratio":"Соотношение шума к количеству","decorator.decorated.inner":"Внутреннее","decorator.decorated.outer":"Внешнее","decorator.depth_average.baseline":"Начальное значение","decorator.depth_average.spread":"Распространение","decorator.glowstone.count":"Количество","decorator.range.bottom_inclusive":"Дно Включительно","decorator.range.top_inclusive":"Потолок Включительно","decorator.range_biased_to_bottom.bottom_inclusive":"Дно Включительно","decorator.range_biased_to_bottom.top_inclusive":"Потолок Включительно","decorator.range_very_biased_to_bottom.bottom_inclusive":"Дно Включительно","decorator.range_very_biased_to_bottom.top_inclusive":"Потолок Включительно","decorator.type":"Тип","dimension":"Измерение","dimension.generator":"Генератор","dimension.generator.biome_source":"Источник биомов","dimension.overworld":"Обычный мир","dimension.the_end":"Энд","dimension.the_nether":"Незер","dimension.type":"Параметры измерения","dimension.type.object":"Произвольно","dimension.type.string":"Предустановка","dimension_type.ambient_light":"Свет окружения","dimension_type.ambient_light.help":"Значение от 0 до 1.","dimension_type.bed_works":"Работает Кровать","dimension_type.bed_works.help":"Если значение установлено в true, игроки могут использовать кровати для того, чтобы устанавливать свою точку возрождения и продвинуться во времени. Если значение установлено в false, кровать будут взрываться при использовании.","dimension_type.coordinate_scale":"Масштаб координат","dimension_type.coordinate_scale.help":"Множитель, который применяется к координатам при перемезении между измерениями через портал или при помощи команды /execute.","dimension_type.effects":"Эффекты","dimension_type.effects.help":"Эффекты неба","dimension_type.effects.overworld":"Верхний Мир","dimension_type.effects.the_end":"Край","dimension_type.effects.the_nether":"Ад","dimension_type.fixed_time":"Фиксированное время","dimension_type.fixed_time.help":"При указании значения солнце будет находится в фиксированном положении.","dimension_type.has_ceiling":"Есть крыша из бедрока","dimension_type.has_ceiling.help":"Влияет на погоду, элементы карты и правила возрождения.","dimension_type.has_raids":"Имеет Рейды","dimension_type.has_raids.help":"Если включено, игроки с эффектом Дурного Знамения могут вызвать рейд.","dimension_type.has_skylight":"Есть свет неба","dimension_type.has_skylight.help":"Влияет на погоду, принцип освещения и правила возрождения.","dimension_type.height":"Высота","dimension_type.height.help":"Общая высота, в которой существуют блоки. Макс Y = Мин Y + Высота.","dimension_type.infiniburn":"Вечногорящие блоки","dimension_type.infiniburn.help":"Тег блоков, определяющий, какие блоки будут гореть вечно.","dimension_type.logical_height":"Логическая Высота","dimension_type.logical_height.help":"Порталы не могут появляться, а хорус не может телепортировать игроков выше этой высоты.","dimension_type.min_y":"Мин Y","dimension_type.min_y.help":"Минимальная высота, в которой могут существовать блоки.","dimension_type.name":"ID","dimension_type.natural":"Земное","dimension_type.natural.help":"Если «Да», из порталов будут появляться зомбифицированные пиглины. Если «Нет», компас и часы будут крутиться случайным образом.","dimension_type.piglin_safe":"Пиглины не превращаются в зомби","dimension_type.piglin_safe.help":"Если выключено, пиглины будут трястись и преврашаться в зомбифицированных пиглинов.","dimension_type.respawn_anchor_works":"Якорь Возрождения Работает","dimension_type.respawn_anchor_works.help":"Если включено, игроки могут заряжать и использовать якори возрождения, для установки спавнпоинтов. Если выключено, якори возрождения взрываются при использовании.","dimension_type.ultrawarm":"Горячее","dimension_type.ultrawarm.help":"Определяет, испаряется ли вода и высыхают ли губки.","distance.absolute":"Абсолютное","distance.horizontal":"Горизонтальное","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Подводник","enchantment.bane_of_arthropods":"Бич членистоногих","enchantment.binding_curse":"Проклятие несъёмности","enchantment.blast_protection":"Взрывоустойчивость","enchantment.channeling":"Громовержец","enchantment.depth_strider":"Подводная ходьба","enchantment.efficiency":"Эффективность","enchantment.enchantment":"Чары","enchantment.feather_falling":"Невесомость","enchantment.fire_aspect":"Заговор огня","enchantment.fire_protection":"Огнеупорность","enchantment.flame":"Горящая стрела","enchantment.fortune":"Удача","enchantment.frost_walker":"Ледоход","enchantment.impaling":"Пронзатель","enchantment.infinity":"Бесконечность","enchantment.knockback":"Отдача","enchantment.levels":"Уровень","enchantment.looting":"Добыча","enchantment.loyalty":"Верность","enchantment.luck_of_the_sea":"Везучий рыбак","enchantment.lure":"Приманка","enchantment.mending":"Починка","enchantment.multishot":"Тройной выстрел","enchantment.piercing":"Пронзающая стрела","enchantment.power":"Сила","enchantment.projectile_protection":"Защита от снарядов","enchantment.protection":"Защита","enchantment.punch":"Откидывание","enchantment.quick_charge":"Быстрая перезарядка","enchantment.respiration":"Подводное дыхание","enchantment.riptide":"Тягун","enchantment.sharpness":"Острота","enchantment.silk_touch":"Шёлковое касание","enchantment.smite":"Небесная кара","enchantment.sweeping":"Разящий клинок","enchantment.thorns":"Шипы","enchantment.unbreaking":"Прочность","enchantment.vanishing_curse":"Проклятие утраты","entity.distance":"Расстояние","entity.effects":"Эффекты","entity.equipment":"Снаряжение","entity.fishing_hook":"Поплавок","entity.fishing_hook.in_open_water":"В открытой воде","entity.flags":"Состояние","entity.isBaby":"Ребёнок","entity.isOnFire":"Горит","entity.isSneaking":"Крадётся","entity.isSprinting":"Бежит","entity.isSwimming":"Плывёт","entity.location":"Местоположение","entity.nbt":"NBT","entity.player":"Игрок","entity.targeted_entity":"Целевая сущность","entity.team":"Команда","entity.type":"Сущность","entity.vehicle":"Транспорт","entity_source.direct_killer":"Убийца-причина урона","entity_source.killer":"Убийца","entity_source.killer_player":"Игрок-убийца","entity_source.this":"Текущая","entry":"Элемент","error":"Ошибка","error.expected_boolean":"Ожидался логический тип данных (Boolean)","error.expected_integer":"Ожидалось целое число (Integer)","error.expected_json":"Ожидался JSON","error.expected_list":"Ожидался массив (Array)","error.expected_number":"Ожидалось число","error.expected_object":"Ожидался объект","error.expected_range":"Ожидался диапазон","error.expected_string":"Ожидалась строка","error.expected_uniform_int":"Ожидалось целое число (Uniform integer)","error.height_multiple":"Высота должна быть кратна %0%","error.invalid_binomial":"Диапазон не может быть биноминального типа","error.invalid_empty_list":"Массив не может быть пустым","error.invalid_empty_string":"Строка не может быть пустой","error.invalid_enum_option":"Неверное значение \\"%0%\\"","error.invalid_exact":"Диапазон не может быть константой","error.invalid_number_range.between":"Ожидалось число в промежутке от %1% до %2%","error.invalid_pattern":"Неверная строка: %0%","error.recipe.invalid_key":"только один символ разрешён как ключ","false":"Нет","feature.bamboo.probability":"Вероятность","feature.basalt_columns.height":"Высота","feature.block_pile.state_provider":"Состояние","feature.config":"Настройки","feature.decorated.decorator":"Декоратор","feature.decorated.feature":"Искажение","feature.disk.radius":"Радиус","feature.disk.state":"Состояние","feature.disk.targets":"Цели","feature.disk.targets.entry":"Состояние","feature.dripstone_cluster.height":"","feature.dripstone_cluster.height_deviation":"","feature.dripstone_cluster.radius":"Радиус","feature.emerald_ore.state":"Состояние","feature.emerald_ore.target":"Цель","feature.end_gateway.exact":"Точный телепорт","feature.end_gateway.exit":"Выход","feature.fill_layer.height":"Высота","feature.fill_layer.state":"Состояние","feature.flower.blacklist":"Чёрный список","feature.flower.block_placer":"Размещение блоков","feature.flower.can_replace":"Может заменить","feature.flower.need_water":"Требуется вода","feature.flower.project":"Проекция","feature.flower.state_provider":"Источник состояния","feature.flower.tries":"Попыток","feature.flower.whitelist":"Белый список","feature.flower.xspread":"Распространение по X","feature.flower.yspread":"Распространение по Y","feature.flower.zspread":"Распространение по Z","feature.forest_rock.state":"Состояние","feature.glow_lichen.can_be_placed_on.entry":"Состояние","feature.glow_lichen.chance_of_spreading":"Вероятность распространения","feature.glow_lichen.search_range":"Радиус поиска","feature.huge_brown_mushroom.cap_provider":"Источник шляпки","feature.huge_brown_mushroom.foliage_radius":"Радиус шляпки","feature.huge_brown_mushroom.stem_provider":"Источник ножки","feature.huge_fungus.decor_state":"Декорация","feature.huge_fungus.hat_state":"Шляпка","feature.huge_fungus.stem_state":"Ножка","feature.huge_red_mushroom.cap_provider":"Источник шляпки","feature.huge_red_mushroom.foliage_radius":"Радиус шляпки","feature.huge_red_mushroom.stem_provider":"Источник ножки","feature.ice_patch.radius":"Радиус","feature.ice_patch.state":"Состояние","feature.ice_patch.targets":"Цели","feature.ice_patch.targets.entry":"Состояние","feature.iceberg.state":"Состояние","feature.lake.state":"Состояние","feature.netherrack_replace_blobs.radius":"Радиус","feature.netherrack_replace_blobs.state":"Состояние","feature.netherrack_replace_blobs.target":"Цель","feature.no_surface_ore.size":"Размер","feature.no_surface_ore.state":"Состояние","feature.no_surface_ore.target":"Цель","feature.object":"Произвольно","feature.ore.discard_chance_on_air_exposure":"Вероятность сброса при контакте с воздухом","feature.ore.size":"Размер","feature.ore.targets":"Цели","feature.ore.targets.entry.state":"Состояние","feature.ore.targets.entry.target":"Цель","feature.random_boolean_selector.feature_false":"Искажение 1","feature.random_boolean_selector.feature_true":"Искажение 2","feature.random_patch.blacklist":"Чёрный список","feature.random_patch.block_placer":"Размещение блоков","feature.random_patch.can_replace":"Может заменить","feature.random_patch.need_water":"Требуется вода","feature.random_patch.project":"Проекция","feature.random_patch.state_provider":"Состояние","feature.random_patch.tries":"Попыток","feature.random_patch.whitelist":"Белый список","feature.random_patch.xspread":"Распространение по X","feature.random_patch.yspread":"Распространение по Y","feature.random_patch.zspread":"Распространение по Z","feature.random_selector.default":"По умолчанию","feature.random_selector.features":"Искажения","feature.random_selector.features.entry":"Искажение","feature.random_selector.features.entry.chance":"Вероятность","feature.random_selector.features.entry.feature":"Искажение","feature.scattered_ore.discard_chance_on_air_exposure":"Вероятность сброса при контакте с воздухом","feature.scattered_ore.size":"Размер","feature.scattered_ore.targets":"Цели","feature.scattered_ore.targets.entry.state":"Состояние","feature.scattered_ore.targets.entry.target":"Цель","feature.sea_pickle.count":"Количество","feature.seagrass.probability":"Вероятность","feature.simple_block.place_in":"Разместить в","feature.simple_block.place_in.entry":"Состояние","feature.simple_block.place_on":"Разместить на","feature.simple_block.place_on.entry":"Состояние","feature.simple_block.place_under":"Разместить под","feature.simple_block.place_under.entry":"Состояние","feature.simple_block.to_place":"Состояние","feature.simple_random_selector.features":"Искажения","feature.simple_random_selector.features.entry":"Искажение","feature.spring_feature.state":"Состояние","feature.string":"Ссылка","feature.tree.decorators":"Декораторы","feature.tree.decorators.entry":"Декоратор дерева","feature.tree.foliage_placer":"Распределение листьев","feature.tree.heightmap":"Карта Высоты","feature.tree.ignore_vines":"Игнорировать лианы","feature.tree.leaves_provider":"Источник листвы","feature.tree.max_water_depth":"Максимальная Глубина Воды","feature.tree.minimum_size":"Минимальный размер","feature.tree.minimum_size.limit":"Лимит","feature.tree.minimum_size.lower_size":"Низкий Размер","feature.tree.minimum_size.middle_size":"Средний Размер","feature.tree.minimum_size.type":"Минимальный размер","feature.tree.minimum_size.upper_limit":"Верхняя Граница","feature.tree.minimum_size.upper_size":"Высокий Размер","feature.tree.trunk_placer":"Распределение Обрезки","feature.tree.trunk_provider":"Обрезание Деревьев","feature.type":"Тип","fluid.fluid":"ID жидкости","fluid.state":"Состояние жидкости","fluid.tag":"Тег жидкостей","fluid_state.Name":"Жидкость","function.apply_bonus.enchantment":"Чары","function.apply_bonus.formula":"Формула","function.apply_bonus.formula.binomial_with_bonus_count":"Биноминальное распределение с бонусным количеством","function.apply_bonus.formula.ore_drops":"Дроп руд","function.apply_bonus.formula.uniform_bonus_count":"Равномерное распределение с бонусным количеством","function.apply_bonus.parameters":"Параметры","function.apply_bonus.parameters.bonusMultiplier":"Множитель","function.apply_bonus.parameters.extra":"Дополнительное значение","function.apply_bonus.parameters.probability":"Вероятность","function.copy_name.source":"Источник","function.copy_nbt.ops":"Операции с NBT","function.copy_nbt.ops.entry":"Операция","function.copy_nbt.source":"Источник","function.copy_state.block":"Блок","function.copy_state.properties":"Свойства","function.copy_state.properties.entry":"Свойство","function.enchant_randomly.enchantments":"Необязательные чары","function.enchant_randomly.enchantments.entry":"Чары","function.enchant_with_levels.levels":"Уровень","function.enchant_with_levels.treasure":"Чары-сокровища","function.exploration_map.decoration":"Значок","function.exploration_map.destination":"Назначение","function.exploration_map.search_radius":"Радиус поиска (в чанках)","function.exploration_map.skip_existing_chunks":"Не искать в существующих чанках","function.exploration_map.zoom":"Уровень приближения","function.fill_player_head.entity":"Сущность","function.function":"Функция","function.limit_count.limit":"Лимит","function.looting_enchant.count":"Количество","function.looting_enchant.limit":"Лимит","function.set_attributes.modifiers":"Модификаторы","function.set_attributes.modifiers.entry":"Модификатор","function.set_banner_pattern.append":"Добавить","function.set_banner_pattern.patterns":"Узоры","function.set_contents.entries":"Содержимое","function.set_contents.entries.entry":"Элемент","function.set_count.add":"Прибавить","function.set_count.add.help":"Если «Да», изменение будет относительно текущего количества","function.set_count.count":"Количество","function.set_damage.add":"Прибавить","function.set_damage.add.help":"Если «Да», изменение будет относительно текущего повреждения","function.set_damage.damage":"Повреждение","function.set_data.data":"Данные","function.set_enchantments.add":"Прибавить","function.set_enchantments.add.help":"Если «Да», изменение будет относительно текущего уровня","function.set_enchantments.enchantments":"Чары","function.set_loot_table.name":"ID таблицы добычи","function.set_loot_table.seed":"Ключ генератора","function.set_lore.entity":"Сущность","function.set_lore.lore":"Описание","function.set_lore.lore.entry":"Строка","function.set_lore.replace":"Заменить","function.set_name.entity":"Сущность","function.set_name.name":"Название","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Эффекты","function.set_stew_effect.effects.entry":"Эффект","function.set_stew_effect.effects.entry.duration":"Длительность","function.set_stew_effect.effects.entry.type":"Эффект","functions":"Функции","functions.entry":"Функция","gamemode.adventure":"Приключение","gamemode.creative":"Творческий","gamemode.spectator":"Наблюдатель","gamemode.survival":"Выживание","generation_step.air":"Воздух","generation_step.liquid":"Жидкость","generator.biome_source.altitude_noise":"Шум альтитуды","generator.biome_source.biome":"Биом","generator.biome_source.biomes":"Биомы","generator.biome_source.humidity_noise":"Шум влажности","generator.biome_source.large_biomes":"Большие биомы","generator.biome_source.legacy_biome_init_layer":"Старый слой инициализации биомов","generator.biome_source.preset":"Шаблон биомов","generator.biome_source.preset.nether":"Незер","generator.biome_source.scale":"Масштаб","generator.biome_source.seed":"Ключ генератора биомов","generator.biome_source.temperature_noise":"Шум температуры","generator.biome_source.type":"Источник биомов","generator.biome_source.weirdness_noise":"Шум странности","generator.seed":"Ключ генератора измерения","generator.settings":"Настройки генератора","generator.settings.biome":"Биом","generator.settings.lakes":"Озёра","generator.settings.layers":"Слои","generator.settings.layers.entry":"Слой","generator.settings.layers.entry.block":"ID блока","generator.settings.layers.entry.height":"Высота","generator.settings.object":"Произвольно","generator.settings.presets.amplified":"Расширенный","generator.settings.presets.caves":"Пещеры","generator.settings.presets.end":"Край","generator.settings.presets.floating_islands":"Парящие острова","generator.settings.presets.nether":"Ад","generator.settings.presets.overworld":"Верхний мир","generator.settings.string":"Шаблон","generator.settings.structures":"Структуры","generator.settings.structures.stronghold":"Крепость (Портал в Край)","generator.settings.structures.stronghold.count":"Количество","generator.settings.structures.stronghold.distance":"Расстояние","generator.settings.structures.stronghold.spread":"Распределение","generator.settings.structures.structures":"Структуры","generator.type":"Тип генератора","generator_biome.biome":"Биом","generator_biome.parameters":"Параметры","generator_biome.parameters.altitude":"Альтитуда","generator_biome.parameters.help":"Эти параметры определяют расположение биома. Каждый биом должен иметь уникальную комбинацию параметров. Биомы с похожими значениями будут генерироваться рядом.","generator_biome.parameters.humidity":"Влажность","generator_biome.parameters.offset":"Смещение","generator_biome.parameters.temperature":"Температура","generator_biome.parameters.weirdness":"Странность","generator_biome_noise.amplitudes":"Амплитуды","generator_biome_noise.amplitudes.entry":"Октава %0%","generator_biome_noise.firstOctave":"Первая октава","generator_structure.salt":"Соль","generator_structure.separation":"Изоляция","generator_structure.separation.help":"Минимальное расстояние в чанках между двумя структурами этого типа. Должно быть меньше чем интервал.","generator_structure.spacing":"Интервал","generator_structure.spacing.help":"Среднее расстояние в чанках между двумя структурами этого типа.","hide_source":"Скрыть источник","item.count":"Количество","item.durability":"Прочность","item.enchantments":"Чары","item.enchantments.entry":"Чары","item.item":"ID предмета","item.nbt":"NBT","item.potion":"Зелье","item.tag":"Тег предметов","key.advancements":"Достижения","key.attack":"Атаковать/Разрушить","key.back":"Идти назад","key.chat":"Открыть чат","key.command":"Открыть команды","key.drop":"Выбросить выбранный предмет","key.forward":"Идти вперёд","key.fullscreen":"Включить полноэкранный режим","key.hotbar.1":"Слот быстрого доступа 1","key.hotbar.2":"Слот быстрого доступа 2","key.hotbar.3":"Слот быстрого доступа 3","key.hotbar.4":"Слот быстрого доступа 4","key.hotbar.5":"Слот быстрого доступа 5","key.hotbar.6":"Слот быстрого доступа 6","key.hotbar.7":"Слот быстрого доступа 7","key.hotbar.8":"Слот быстрого доступа 8","key.hotbar.9":"Слот быстрого доступа 9","key.inventory":"Открыть/Закрыть инвентарь","key.jump":"Прыжок","key.left":"Идти влево","key.loadToolbarActivator":"Клавиша загрузки панели быстрого доступа","key.pickItem":"Выбрать блок","key.playerlist":"Список игроков","key.right":"Идти вправо","key.saveToolbarActivator":"Клавиша сохранения панели быстрого доступа","key.screenshot":"Сделать снимок экрана","key.smoothCamera":"Включить плавную камеру","key.sneak":"Присесть","key.spectatorOutlines":"Подсветить игроков (Режим наблюдателя)","key.sprint":"Бег","key.swapOffhand":"Переложить предмет в руках","key.togglePerspective":"Сменить перспективу","key.use":"Использовать предмет/Поставить блок","location.biome":"Биом","location.block":"Блок","location.dimension":"Измерение","location.feature":"Строение","location.fluid":"Жидкость","location.light":"Освещённость","location.light.light":"Уровень освещённости","location.position":"Позиция","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Задымлённое","loot_condition_type.alternative":"Альтернатива (ИЛИ)","loot_condition_type.block_state_property":"Свойства блока","loot_condition_type.damage_source_properties":"Источник урона","loot_condition_type.entity_properties":"Свойства сущности","loot_condition_type.entity_scores":"Счёты сущности","loot_condition_type.inverted":"Инвертирование (НЕ)","loot_condition_type.killed_by_player":"Убит игроком","loot_condition_type.location_check":"Местоположение","loot_condition_type.match_tool":"Свойства инструмента","loot_condition_type.random_chance":"Случайность","loot_condition_type.random_chance_with_looting":"Случайность с «Добычей»","loot_condition_type.reference":"Предикат","loot_condition_type.survives_explosion":"Переживает взрыв","loot_condition_type.table_bonus":"Бонус таблицы","loot_condition_type.time_check":"Время","loot_condition_type.value_check":"Значение","loot_condition_type.weather_check":"Погода","loot_entry.dynamic.name":"Название","loot_entry.item.name":"ID","loot_entry.loot_table.name":"ID таблицы добычи","loot_entry.quality":"Качество","loot_entry.tag.expand":"Отдельно","loot_entry.tag.expand.help":"Если отдельно, то действует как множество записей каждого предмета из тега, иначе возвращает всё содержимое тега.","loot_entry.tag.name":"ID тега предметов","loot_entry.type":"Тип","loot_entry.weight":"Вес","loot_function_type.apply_bonus":"Применить бонус","loot_function_type.copy_name":"Скопировать название","loot_function_type.copy_nbt":"Скопировать NBT","loot_function_type.copy_state":"Скопировать состояния блока","loot_function_type.enchant_randomly":"Наложить случайные чары","loot_function_type.enchant_with_levels":"Наложить чары за уровни","loot_function_type.exploration_map":"Задать свойства карты исследователя","loot_function_type.explosion_decay":"Разрушить взрывом","loot_function_type.fill_player_head":"Задать скин голове игрока","loot_function_type.furnace_smelt":"Расплавить в печи","loot_function_type.limit_count":"Ограничить количество","loot_function_type.looting_enchant":"Применить «Добычу»","loot_function_type.set_attributes":"Задать атрибуты","loot_function_type.set_banner_pattern":"Задать узор флага","loot_function_type.set_contents":"Задать содержимое","loot_function_type.set_count":"Задать количество","loot_function_type.set_damage":"Задать повреждение","loot_function_type.set_data":"Задать данные","loot_function_type.set_enchantments":"Задать чары","loot_function_type.set_loot_table":"Задать таблицу добычи","loot_function_type.set_lore":"Задать описание","loot_function_type.set_name":"Задать название","loot_function_type.set_nbt":"Задать NBT","loot_function_type.set_stew_effect":"Задать эффект загадочного рагу","loot_pool.bonus_rolls":"Бонусных бросков","loot_pool.entries":"Элементы","loot_pool.entries.entry":"Элемент","loot_pool.rolls":"Бросков","loot_pool.rolls.help":"Количество раз выбора случайной записи.","loot_pool_entry_type.alternatives":"Альтернатива","loot_pool_entry_type.alternatives.help":"Выбирает первую дочернюю запись, у которой выполняется условие.","loot_pool_entry_type.dynamic":"Динамический","loot_pool_entry_type.dynamic.help":"Возвращает особое содержимое блока.","loot_pool_entry_type.empty":"Ничего","loot_pool_entry_type.empty.help":"Возвращает пустую запись.","loot_pool_entry_type.group":"Группа","loot_pool_entry_type.group.help":"Выбирает все дочерние записи, у которых выполняются условия.","loot_pool_entry_type.item":"Предмет","loot_pool_entry_type.item.help":"Возвращает один предмет.","loot_pool_entry_type.loot_table":"Таблица добычи","loot_pool_entry_type.loot_table.help":"Возвращает содержимое другой таблицы добычи.","loot_pool_entry_type.sequence":"Последовательность","loot_pool_entry_type.sequence.help":"Выбирает все дочерние записи до первой записи, у которой условия не выполняются.","loot_pool_entry_type.tag":"Тег предметов","loot_pool_entry_type.tag.help":"Возвращает содержимое тега предметов.","loot_table.pools":"Пулы","loot_table.pools.entry":"Пул","luck_based":"Основано на удаче","nbt_operation.op":"Действие","nbt_operation.op.append":"Добавление","nbt_operation.op.merge":"Объединение","nbt_operation.op.replace":"Замена","nbt_operation.source":"Источник","nbt_operation.target":"Цель","nbt_provider.source":"Источник","nbt_provider.target":"Цель","nbt_provider.type":"Тип","nbt_provider.type.context":"Контекст+","nbt_provider.type.storage":"Хранилище","nbt_provider.type.string":"Контекст","noise_settings.aquifers_enabled":"Аквиферы","noise_settings.bedrock_floor_position":"Высота нижнего слоя коренной породы","noise_settings.bedrock_floor_position.help":"Положение нижнего уровня бедрока. Чем больше число, тем выше уровень.","noise_settings.bedrock_roof_position":"Высота верхнего слоя коренной породы","noise_settings.bedrock_roof_position.help":"Положение верхнего уровня бедрока относительно верха мира. Чем больше число, тем ниже уровень.","noise_settings.default_block":"Стандартный блок","noise_settings.default_fluid":"Стандартная жидкость","noise_settings.disable_mob_generation":"Отключить генерацию мобов","noise_settings.disable_mob_generation.help":"Определяет, появляются ли мобы во время генерации.","noise_settings.name":"ID","noise_settings.noise":"Параметры шума","noise_settings.noise.amplified":"Расширенный","noise_settings.noise.bottom_slide":"Низ кривой","noise_settings.noise.bottom_slide.offset":"Смещение низа кривой","noise_settings.noise.bottom_slide.size":"Размер низа кривой","noise_settings.noise.bottom_slide.target":"Значение низа кривой","noise_settings.noise.density_factor":"Множитель плотности","noise_settings.noise.density_offset":"Смещение плотности","noise_settings.noise.height":"Высота","noise_settings.noise.island_noise_override":"Переопределение островным шумом","noise_settings.noise.island_noise_override.help":"Если «Да», ландшафт будет генерироваться в форме островов, похожую на ту, что в Энде.","noise_settings.noise.random_density_offset":"Случайное смещение плотности","noise_settings.noise.sampling":"Координатный масштаб","noise_settings.noise.sampling.xz_factor":"Множитель шума по X, Z","noise_settings.noise.sampling.xz_scale":"Уровень шума по X, Z","noise_settings.noise.sampling.y_factor":"Множитель шума по Y","noise_settings.noise.sampling.y_scale":"Уровень шума по Y","noise_settings.noise.simplex_surface_noise":"Симплекс-шум поверхности","noise_settings.noise.size_horizontal":"Размер по горизонтали","noise_settings.noise.size_vertical":"Размер по вертикали","noise_settings.noise.top_slide":"Верх кривой","noise_settings.noise.top_slide.offset":"Смещение верха кривой","noise_settings.noise.top_slide.size":"Размер верха кривой","noise_settings.noise.top_slide.target":"Значение верха кривой","noise_settings.sea_level":"Уровень моря","number_provider.max":"Макс.","number_provider.min":"Мин.","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Множитель","number_provider.score":"Задача","number_provider.target":"Цель","number_provider.type":"Тип","number_provider.type.binomial":"Биномиально","number_provider.type.constant":"Константа+","number_provider.type.number":"Константа","number_provider.type.object":"Равномерно","number_provider.type.score":"Счёт","number_provider.type.uniform":"Равномерно+","number_provider.value":"Число","player.advancements":"Достижение","player.advancements.entry":"Достижение","player.gamemode":"Игровой режим","player.level":"Уровень опыта","player.recipes":"Рецепты","player.stats":"Статистика","player.stats.entry":"Статистика","processors.object":"Произвольно","processors.string":"Ссылка","range.binomial":"Биномиально","range.max":"Макс.","range.min":"Мин.","range.n":"N","range.number":"Число","range.object":"Диапазон","range.p":"P","range.type":"Тип","range.uniform":"Равномерно","requirements":"Требуются","score_provider.target":"Цель","score_provider.type":"Тип","score_provider.type.context":"Контекст+","score_provider.type.fixed":"Заданная","score_provider.type.string":"Контекст","slot.chest":"Тело","slot.feet":"Стопы","slot.head":"Голова","slot.legs":"Ноги","slot.mainhand":"Ведущая рука","slot.offhand":"Вторая рука","statistic.stat":"Статистика","statistic.type":"Тип","statistic.type.broken":"Сломано","statistic.type.crafted":"Создано","statistic.type.custom":"Пользовательский","statistic.type.dropped":"Выброшено","statistic.type.killed":"Убито","statistic.type.killedByTeam":"Был убит командой","statistic.type.killed_by":"Был убит","statistic.type.mined":"Вскопано","statistic.type.picked_up":"Подобрано","statistic.type.teamkill":"Убито из команды","statistic.type.used":"Использовано","statistic.value":"Значение","status_effect.ambient":"Из окружения","status_effect.amplifier":"Уровень","status_effect.duration":"Длительность","status_effect.visible":"Видимый","table.type":"Тип","table.type.block":"Блок","table.type.chest":"Сундук","table.type.empty":"Ничего","table.type.entity":"Сущность","table.type.fishing":"Рыбалка","table.type.generic":"Общий","tag.replace":"Заменить","tag.values":"Значения","template_element.feature":"Искажение","text_component":"Текстовый компонент","text_component.boolean":"Логический тип","text_component.list":"Список","text_component.number":"Число","text_component.object":"Объект","text_component.string":"Строка","text_component_object.block":"Блок","text_component_object.bold":"Жирный","text_component_object.clickEvent":"Действие по нажатию","text_component_object.clickEvent.action":"Действие","text_component_object.clickEvent.action.change_page":"Сменить страницу","text_component_object.clickEvent.action.copy_to_clipboard":"Скопировать в буфер обмена","text_component_object.clickEvent.action.open_file":"Открыть файл","text_component_object.clickEvent.action.open_url":"Открыть ссылку","text_component_object.clickEvent.action.run_command":"Выполнить команду","text_component_object.clickEvent.action.suggest_command":"Предложить команду","text_component_object.clickEvent.value":"Значение","text_component_object.color":"Цвет","text_component_object.entity":"Сущность","text_component_object.extra":"Дополнительно","text_component_object.font":"Шрифт","text_component_object.hoverEvent":"Действие по наведению","text_component_object.hoverEvent.action":"Действие","text_component_object.hoverEvent.action.show_entity":"Показать сущность","text_component_object.hoverEvent.action.show_item":"Показать предмет","text_component_object.hoverEvent.action.show_text":"Показать текст","text_component_object.hoverEvent.contents":"Содержимое","text_component_object.hoverEvent.value":"Значение","text_component_object.insertion":"Вставка","text_component_object.interpret":"Интерпретировать","text_component_object.italic":"Курсив","text_component_object.keybind":"Назначенная клавиша","text_component_object.nbt":"Данные сущности (NBT)","text_component_object.obfuscated":"Обфусцированный","text_component_object.score":"Счёт","text_component_object.score.name":"Имя","text_component_object.score.objective":"Счёт","text_component_object.score.value":"Значение","text_component_object.selector":"Селектор","text_component_object.storage":"Хранилище","text_component_object.strikethrough":"Зачёркнутый","text_component_object.text":"Простой текст","text_component_object.translate":"Переводимый текст","text_component_object.underlined":"Подчёркнутый","text_component_object.with":"Перевести с","true":"Да","uniform_int.base":"Начальное значение","uniform_int.number":"Точное","uniform_int.object":"Случайное число в промежутке","uniform_int.spread":"Распределение","unset":"Не задано","vertical_anchor.above_bottom":"Над нижней границей","vertical_anchor.absolute":"Абсолютная величина","vertical_anchor.below_top":"Под верхней границей","world.bonus_chest":"Бонусный сундук","world.generate_features":"Генерация строений","world.seed":"Ключ генератора мира","world_settings.generate_features":"Генерация строений","worldgen.warning":"Эта функция экспериментальная и крайне нестабильная. Она может измениться в будущих версиях. Есть вероятность, что произойдёт сбой игры при создании мира.","worldgen/biome_source.checkerboard":"Шахматный","worldgen/biome_source.checkerboard.help":"Биомы генерируются в шахматном порядке чанков.","worldgen/biome_source.fixed":"Один биом","worldgen/biome_source.fixed.help":"Один биом на весь мир.","worldgen/biome_source.multi_noise":"Множественный шум","worldgen/biome_source.multi_noise.help":"Произвольное распределение биомов с настраиваемыми параметрами.","worldgen/biome_source.the_end":"Энд","worldgen/biome_source.the_end.help":"Распределение биомов в Краю.","worldgen/biome_source.vanilla_layered":"Стандартный","worldgen/biome_source.vanilla_layered.help":"Распределение биомов в Верхнем мире.","worldgen/chunk_generator.debug":"Режим отладки","worldgen/chunk_generator.flat":"Суперплоскость","worldgen/chunk_generator.noise":"По умолчанию","worldgen/feature_size_type.three_layers_feature_size":"Три слоя","worldgen/feature_size_type.two_layers_feature_size":"Два слоя","worldgen/structure_pool_element.feature_pool_element":"Искажение"}');export default e; -//# sourceMappingURL=ru.92df5b59.js.map diff --git a/assets/ru.92df5b59.js.map b/assets/ru.92df5b59.js.map deleted file mode 100644 index dc693db8..00000000 --- a/assets/ru.92df5b59.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ru.92df5b59.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/ru.9fcdec57.js b/assets/ru.9fcdec57.js new file mode 100644 index 00000000..ffe3da41 --- /dev/null +++ b/assets/ru.9fcdec57.js @@ -0,0 +1,2 @@ +var e=JSON.parse('{"advancement.criteria":"Условие","advancement.display":"Отображение","advancement.display.announce_to_chat":"Сообщение в чате","advancement.display.background":"Фон","advancement.display.description":"Описание","advancement.display.frame":"Рамка","advancement.display.frame.challenge":"Испытание","advancement.display.frame.goal":"Цель","advancement.display.frame.task":"Обычная","advancement.display.help":"Если указано, достижение будет отображаться в интерфейсе достижений.","advancement.display.hidden":"Скрыто","advancement.display.icon":"Значок","advancement.display.icon.item":"Предмет значка","advancement.display.icon.nbt":"NBT значка","advancement.display.show_toast":"Всплывающее уведомление","advancement.display.title":"Заголовок","advancement.parent":"Предок","advancement.rewards":"Награды","advancement.rewards.experience":"Опыт","advancement.rewards.function":"Функция","advancement.rewards.loot":"Таблицы достижений","advancement.rewards.recipes":"Рецепты","advancement_trigger.bee_nest_destroyed":"Разрушил пчелиное гнездо","advancement_trigger.bred_animals":"Свёл животных","advancement_trigger.brewed_potion":"Сварил зелье","advancement_trigger.changed_dimension":"Сменил измерение","advancement_trigger.channeled_lightning":"Поразил «Громовержцем»","advancement_trigger.construct_beacon":"Построил маяк","advancement_trigger.consume_item":"Съел/Выпил предмет","advancement_trigger.cured_zombie_villager":"Излечил зомби-крестьянина","advancement_trigger.effects_changed":"Эффекты изменены","advancement_trigger.enchanted_item":"Зачаровал предмет","advancement_trigger.enter_block":"Находится в блоке","advancement_trigger.entity_hurt_player":"Получил урон","advancement_trigger.entity_killed_player":"Убит сущностью","advancement_trigger.fall_from_height":"Упасть с высоты","advancement_trigger.filled_bucket":"Наполнил ведро","advancement_trigger.fishing_rod_hooked":"Подцепил крючком","advancement_trigger.hero_of_the_village":"Герой деревни","advancement_trigger.impossible":"Невозможный","advancement_trigger.inventory_changed":"Инвентарь изменён","advancement_trigger.item_durability_changed":"Прочность предмета изменена","advancement_trigger.item_used_on_block":"Использовал предмет на блоке","advancement_trigger.killed_by_crossbow":"Убил арбалетом","advancement_trigger.levitation":"Левитация","advancement_trigger.location":"Местоположение","advancement_trigger.nether_travel":"Переместился через Незер","advancement_trigger.placed_block":"Поставил блок","advancement_trigger.player_generates_container_loot":"Сгенерировал содержимое блока","advancement_trigger.player_hurt_entity":"Нанёс урон","advancement_trigger.player_killed_entity":"Убил сущность","advancement_trigger.recipe_unlocked":"Разблокировал рецепт","advancement_trigger.ride_entity_in_lava":"Оседлать сущность в лаве","advancement_trigger.safely_harvest_honey":"Безопасно собрал мёд","advancement_trigger.shot_crossbow":"Выстрелил из арбалета","advancement_trigger.slept_in_bed":"Лёг на кровать","advancement_trigger.slide_down_block":"Скользит вниз по блоку","advancement_trigger.summoned_entity":"Призвал сущность","advancement_trigger.tame_animal":"Приручил животное","advancement_trigger.target_hit":"Попадание","advancement_trigger.thrown_item_picked_up_by_entity":"Выкинутый предмет подобран сущностью","advancement_trigger.tick":"Такт","advancement_trigger.used_ender_eye":"Использовал око Эндера","advancement_trigger.used_totem":"Использовал тотем","advancement_trigger.villager_trade":"Поторговал с крестьянином","advancement_trigger.voluntary_exile":"Вызвал рейд","attribute.generic_armor":"Броня","attribute.generic_armor_toughness":"Твёрдость брони","attribute.generic_attack_damage":"Урон","attribute.generic_attack_knockback":"Отбрасывание","attribute.generic_attack_speed":"Скорость атаки","attribute.generic_flying_speed":"Скорость полёта","attribute.generic_follow_range":"Диапазон преследования моба","attribute.generic_knockback_resistance":"Сопротивление отбрасыванию","attribute.generic_luck":"Удача","attribute.generic_max_health":"Максимальное здоровье","attribute.generic_movement_speed":"Скорость","attribute.horse.jump_strength":"Сила прыжка лошади","attribute.zombie.spawn_reinforcements":"Подкрепление зомби","attribute_modifier.amount":"Количество","attribute_modifier.attribute":"Атрибут","attribute_modifier.name":"Название","attribute_modifier.operation":"Действие","attribute_modifier.operation.addition":"Прибавление","attribute_modifier.operation.multiply_base":"Умножение базового","attribute_modifier.operation.multiply_total":"Умножение общего","attribute_modifier.slot":"Ячейки","attribute_modifier.slot.list":"Несколько","attribute_modifier.slot.string":"Одна","badge.experimental":"Экспериментальный","badge.unstable":"Нестабильный","biome.carvers":"Полости","biome.carvers.air":"Воздух","biome.carvers.liquid":"Жидкость","biome.category":"Категория","biome.creature_spawn_probability":"Шанс появления пассивных мобов","biome.depth":"Глубина","biome.depth.help":"Поднимает или опускает рельеф местности. Положительные значения считаются сушей, а отрицательные — океанами.","biome.downfall":"Влажность","biome.effects":"Эффекты","biome.effects.additions_sound":"Дополнительные звуки","biome.effects.additions_sound.sound":"Звук","biome.effects.additions_sound.tick_chance":"Шанс за такт","biome.effects.ambient_sound":"Звук окружения","biome.effects.fog_color":"Цвет тумана","biome.effects.foliage_color":"Цвет листьев","biome.effects.grass_color":"Цвет травы","biome.effects.grass_color_modifier":"Модификатор цвета травы","biome.effects.grass_color_modifier.dark_forest":"Тёмный лес","biome.effects.grass_color_modifier.none":"Нет","biome.effects.grass_color_modifier.swamp":"Болото","biome.effects.mood_sound":"Пещерный звук","biome.effects.mood_sound.block_search_extent":"Радиус поиска позиции","biome.effects.mood_sound.offset":"Смещение","biome.effects.mood_sound.sound":"Звук","biome.effects.mood_sound.tick_delay":"Задержка в тактах","biome.effects.music":"Музыка","biome.effects.music.max_delay":"Максимальная задержка","biome.effects.music.min_delay":"Минимальная задержка","biome.effects.music.replace_current_music":"Замена играющей музыки","biome.effects.music.sound":"Звук","biome.effects.particle":"Частица","biome.effects.particle.options":"Параметры","biome.effects.particle.options.type":"Тип частицы","biome.effects.particle.probability":"Шанс","biome.effects.sky_color":"Цвет неба","biome.effects.water_color":"Цвет воды","biome.effects.water_fog_color":"Цвет подводного тумана","biome.features":"Размещаемые объекты","biome.features.entry":"Шаг %0%","biome.features.entry.entry":"Объект","biome.player_spawn_friendly":"Дружественное появление игрока","biome.player_spawn_friendly.help":"Если «Да», точка появления в мире предпочтительно будет в этом биоме.","biome.precipitation":"Осадки","biome.precipitation.none":"Нет","biome.precipitation.rain":"Дождь","biome.precipitation.snow":"Снег","biome.scale":"Масштаб","biome.scale.help":"Растягивает местность по вертикали. Чем меньше значение, тем ровнее местность.","biome.spawn_costs":"Цена Появления","biome.spawn_costs.charge":"Заряд","biome.spawn_costs.energy_budget":"Бюджет Энергии","biome.spawners":"Появление мобов","biome.spawners.ambient":"Окружение","biome.spawners.creature":"Пассивные","biome.spawners.entry":"Появление","biome.spawners.entry.maxCount":"Максимальное количество","biome.spawners.entry.minCount":"Минимальное количество","biome.spawners.entry.type":"Тип","biome.spawners.entry.weight":"Вес","biome.spawners.misc":"Другие","biome.spawners.monster":"Монстр","biome.spawners.water_ambient":"Водное окружение","biome.spawners.water_creature":"Водные пассивные","biome.starts":"Начала строений","biome.starts.entry":"Строение","biome.starts.help":"Список настроенных строений.","biome.surface_builder":"Построитель поверхности","biome.temperature":"Температура","biome.temperature_modifier":"Модификатор температуры","biome.temperature_modifier.frozen":"Мороз","biome.temperature_modifier.none":"Нет","block.block":"ID блока","block.nbt":"NBT","block.state":"Состояние блока","block.tag":"Тег блоков","block_definition.multipart.entry":"Часть","block_definition.multipart.entry.apply":"Применить","block_definition.multipart.entry.when":"Когда","block_definition.variants":"Варианты","block_placer.column_placer.extra_size":"Дополнительный размер","block_placer.column_placer.min_size":"Минимальный размер","block_placer.type":"Тип","block_predicate.all_of.predicates":"Предикаты","block_predicate.any_of.predicates":"Предикаты","block_predicate.inside_world_bounds.offset":"Смещение","block_predicate.matching_blocks.blocks":"Блоки","block_predicate.matching_blocks.blocks.entry":"Блок","block_predicate.matching_blocks.offset":"Смещение","block_predicate.matching_fluids.fluids":"Жидкости","block_predicate.matching_fluids.fluids.entry":"Жидкость","block_predicate.matching_fluids.offset":"Смещение","block_predicate.not.predicate":"Предикат","block_predicate.type":"Тип","block_predicate.would_survive.offset":"Смещение","block_predicate.would_survive.state":"Состояние","block_predicate_type.all_of":"Все из","block_predicate_type.any_of":"Любой из","block_predicate_type.inside_world_bounds":"Внутри границ мира","block_predicate_type.matching_blocks":"Подходящие блоки","block_predicate_type.matching_fluids":"Подходящие жидкости","block_predicate_type.not":"Не","block_predicate_type.replaceable":"Заменяемые","block_predicate_type.solid":"Твёрдый","block_predicate_type.true":"Верно","block_predicate_type.would_survive":"Смог бы выжить","block_state.Name":"Блок","block_state.Properties":"Свойства","block_state_provider.dual_noise_provider.noise":"Шум","block_state_provider.dual_noise_provider.scale":"Масштаб","block_state_provider.dual_noise_provider.seed":"Зерно","block_state_provider.dual_noise_provider.slow_noise":"","block_state_provider.dual_noise_provider.states":"Состояния","block_state_provider.noise_provider.noise":"Шум","block_state_provider.noise_provider.scale":"Масштаб","block_state_provider.noise_provider.seed":"Зерно","block_state_provider.noise_provider.states":"Состояния","block_state_provider.noise_threshold_provider.default_state":"Состояние по умолчанию","block_state_provider.noise_threshold_provider.high_chance":"Высокий шанс","block_state_provider.noise_threshold_provider.high_states":"Высокие состояния","block_state_provider.noise_threshold_provider.low_states":"Низкие состояния","block_state_provider.noise_threshold_provider.noise":"Шум","block_state_provider.noise_threshold_provider.scale":"Масштаб","block_state_provider.noise_threshold_provider.seed":"Зерно","block_state_provider.noise_threshold_provider.threshold":"Порог","block_state_provider.randomized_int_state_provider.property":"Параметр","block_state_provider.randomized_int_state_provider.source":"Источник","block_state_provider.randomized_int_state_provider.values":"Значения","block_state_provider.rotated_block_provider.state":"Состояние","block_state_provider.simple_state_provider.state":"Состояние","block_state_provider.type":"Тип","block_state_provider.weighted_state_provider.entries":"Элементы","block_state_provider.weighted_state_provider.entries.entry.data":"Состояние","block_state_provider.weighted_state_provider.entries.entry.weight":"Вес","carver.config":"Параметры","carver.config.aquifers_enabled":"Включены аквиферы","carver.config.canyon.bottom_inclusive":"Дно Включительно","carver.config.canyon.shape":"Форма","carver.config.canyon.shape.distance_factor":"Фактор Расстояния","carver.config.canyon.shape.horizontal_radius_factor":"Фактор Горизонтального Радиуса","carver.config.canyon.shape.thickness":"Толщина","carver.config.canyon.shape.vertical_radius_center_factor":"Коэффициент Центра Вертикального Радиуса","carver.config.canyon.shape.vertical_radius_default_factor":"Фактор Вертикального Радиуса по Умолчанию","carver.config.canyon.shape.width_smoothness":"Гладкость по Ширине","carver.config.canyon.top_inclusive":"Потолок Включительно","carver.config.canyon.vertical_rotation":"Вертикальное Вращение","carver.config.cave.floor_level":"Уровень Пола","carver.config.cave.horizontal_radius_multiplier":"Множитель Горизонтального Радиуса","carver.config.cave.vertical_radius_multiplier":"Множитель Вертикального Радиуса","carver.config.debug_settings":"Настройки Отладки","carver.config.debug_settings.air_state":"Состояние Воздуха","carver.config.debug_settings.barrier_state":"Состояние Барьера","carver.config.debug_settings.debug_mode":"Режим Отладки","carver.config.debug_settings.lava_state":"Состояние Лавы","carver.config.debug_settings.water_state":"Состояние Воды","carver.config.lava_level":"Уровень Лавы","carver.config.probability":"Шанс","carver.config.y_scale":"Шакала Y","carver.type":"Тип","cave_surface.ceiling":"Потолок","cave_surface.floor":"Пол","children":"Потомки","children.entry":"Элемент","condition.alternative.terms":"Условия","condition.block_state_property.block":"Блок","condition.block_state_property.properties":"Состояние блока","condition.condition":"Условие","condition.damage_source":"Повреждение","condition.entity_properties.entity":"Сущность","condition.entity_scores.entity":"Сущность","condition.entity_scores.scores":"Счёты","condition.entry":"Предикат","condition.inverted.term":"Выражение","condition.item":"Предмет","condition.killed_by_player.inverse":"Инвертировать","condition.list":"Несколько","condition.location":"Местоположение","condition.location_check.offsetX":"Смещение по X","condition.location_check.offsetY":"Смещение по Y","condition.location_check.offsetZ":"Смещение по Z","condition.object":"Простой","condition.random_chance.chance":"Шанс","condition.random_chance_with_looting.chance":"Шанс","condition.random_chance_with_looting.looting_multiplier":"Множитель «Добычи»","condition.reference.name":"ID предиката","condition.table_bonus.chances":"Шансы","condition.table_bonus.chances.entry":"Шанс","condition.table_bonus.enchantment":"Чары","condition.time_check.period":"Период","condition.time_check.period.help":"Если задан, время будет получено взятием остатка от деления времени на заданный период.","condition.time_check.value":"Значение","condition.value_check.range":"Диапазон","condition.value_check.value":"Значение","condition.weather_check.raining":"Дождь","condition.weather_check.thundering":"Гроза","conditions":"Условия","conditions.entry":"Условие","conditions.list":"Условия","conditions.object":"Устаревший","copy_source.block_entity":"Блок-сущность","copy_source.direct_killer":"Убийца-причина урона","copy_source.killer":"Убийца","copy_source.killer_player":"Игрок-убийца","copy_source.this":"Текущая сущность","criterion.bee_nest_destroyed.block":"Блок","criterion.bee_nest_destroyed.num_bees_inside":"Пчёл внутри","criterion.bred_animals.child":"Потомок","criterion.bred_animals.parent":"Предок","criterion.bred_animals.partner":"Партнёр","criterion.brewed_potion.potion":"Зелье","criterion.changed_dimension.from":"Откуда","criterion.changed_dimension.to":"Куда","criterion.channeled_lightning.victims":"Жертвы","criterion.channeled_lightning.victims.entry":"Сущность","criterion.conditions":"Условия","criterion.construct_beacon.beacon_level":"Уровень конструкции","criterion.consume_item.item":"Предмет","criterion.cured_zombie_villager.villager":"Крестьянин","criterion.cured_zombie_villager.zombie":"Зомби","criterion.effects_changed.effects":"Эффект","criterion.enchanted_item.item":"Предмет","criterion.enchanted_item.levels":"Уровень","criterion.enter_block.block":"Блок","criterion.enter_block.state":"Состояние","criterion.entity_hurt_player.damage":"Урон","criterion.entity_killed_player.entity":"Сущность-источник","criterion.entity_killed_player.killing_blow":"Смертельный удар","criterion.fall_from_height.distance":"Дистанция","criterion.fall_from_height.start_position":"Стартовая Позиция","criterion.filled_bucket.item":"Предмет","criterion.fishing_rod_hooked.entity":"Подтянутая сущность","criterion.fishing_rod_hooked.item":"Предмет","criterion.hero_of_the_village.location":"Местоположение","criterion.inventory_changed.items":"Предметы","criterion.inventory_changed.items.entry":"Предмет","criterion.inventory_changed.slots":"Ячейки","criterion.inventory_changed.slots.empty":"Пустых ячеек","criterion.inventory_changed.slots.full":"Полных ячеек","criterion.inventory_changed.slots.occupied":"Занятых ячеек","criterion.item_durability_changed.delta":"Разница","criterion.item_durability_changed.durability":"Прочность","criterion.item_durability_changed.item":"Предмет","criterion.item_used_on_block.item":"Предмет","criterion.item_used_on_block.location":"Местоположение","criterion.killed_by_crossbow.unique_entity_types":"Уникальных типов сущностей","criterion.killed_by_crossbow.victims":"Жертвы","criterion.killed_by_crossbow.victims.entry":"Сущность","criterion.levitation.distance":"Расстояние","criterion.levitation.duration":"Длительность","criterion.location.location":"Местоположение","criterion.nether_travel.distance":"Расстояние","criterion.nether_travel.entered":"Местоположение входа","criterion.nether_travel.exited":"Местоположение выхода","criterion.placed_block.block":"Блок","criterion.placed_block.item":"Предмет","criterion.placed_block.location":"Местоположение","criterion.placed_block.state":"Состояние","criterion.player":"Игрок","criterion.player_generates_container_loot.loot_table":"Таблица добычи","criterion.player_hurt_entity.damage":"Урон","criterion.player_hurt_entity.entity":"Сущность-жертва","criterion.player_killed_entity.entity":"Сущность-жертва","criterion.player_killed_entity.killing_blow":"Смертельный удар","criterion.recipe_unlocked.recipe":"Рецепт","criterion.rod":"Удочка","criterion.safely_harvest_honey.block":"Блок","criterion.safely_harvest_honey.item":"Предмет","criterion.shot_crossbow.item":"Предмет","criterion.slept_in_bed.location":"Местоположение","criterion.slide_down_block.block":"Блок","criterion.summoned_entity.entity":"Сущность","criterion.tame_animal.entity":"Животное","criterion.target_hit.projectile":"Снаряд","criterion.target_hit.shooter":"Стрелок","criterion.target_hit.signal_strength":"Мощность сигнала","criterion.thrown_item_picked_up_by_entity.entity":"Сущность","criterion.thrown_item_picked_up_by_entity.item":"Предмет","criterion.trigger":"Триггер","criterion.used_ender_eye.distance":"Расстояние","criterion.used_totem.item":"Предмет тотема","criterion.villager_trade.item":"Купленный предмет","criterion.villager_trade.villager":"Крестьянин","criterion.voluntary_exile.location":"Местоположение","damage.blocked":"Заблокирован","damage.dealt":"Нанесённый урон","damage.source_entity":"Сущность-источник","damage.taken":"Полученный урон","damage.type":"Тип урона","damage_source.bypasses_armor":"Игнорирование брони","damage_source.bypasses_invulnerability":"Пустота","damage_source.bypasses_magic":"Голод","damage_source.direct_entity":"Сущность-причина урона","damage_source.is_explosion":"Взрыв","damage_source.is_fire":"Огонь","damage_source.is_lightning":"Молния","damage_source.is_magic":"Магия","damage_source.is_projectile":"Снаряд","damage_source.source_entity":"Сущность-источник урона","decorator.carving_mask.step":"Этап генерации","decorator.config":"Параметры","decorator.count.count":"Количество","decorator.count_extra.count":"Количество","decorator.count_extra.extra_chance":"Вероятность дополнительного","decorator.count_extra.extra_count":"Дополнительное количество","decorator.count_multilayer.count":"Количество","decorator.count_noise.above_noise":"Количество выше шума","decorator.count_noise.below_noise":"Количество ниже шума","decorator.count_noise.noise_level":"Уровень шума","decorator.count_noise_biased.noise_factor":"Множитель шума","decorator.count_noise_biased.noise_offset":"Смещение шума","decorator.count_noise_biased.noise_to_count_ratio":"Соотношение шума к количеству","decorator.decorated.inner":"Внутреннее","decorator.decorated.outer":"Внешнее","decorator.depth_average.baseline":"Начальное значение","decorator.depth_average.spread":"Распространение","decorator.glowstone.count":"Количество","decorator.range.bottom_inclusive":"Дно Включительно","decorator.range.top_inclusive":"Потолок Включительно","decorator.range_biased_to_bottom.bottom_inclusive":"Дно Включительно","decorator.range_biased_to_bottom.top_inclusive":"Потолок Включительно","decorator.range_very_biased_to_bottom.bottom_inclusive":"Дно Включительно","decorator.range_very_biased_to_bottom.top_inclusive":"Потолок Включительно","decorator.type":"Тип","dimension":"Измерение","dimension.generator":"Генератор","dimension.generator.biome_source":"Источник биомов","dimension.overworld":"Обычный мир","dimension.the_end":"Энд","dimension.the_nether":"Незер","dimension.type":"Параметры измерения","dimension.type.object":"Произвольно","dimension.type.string":"Предустановка","dimension_type.ambient_light":"Свет окружения","dimension_type.ambient_light.help":"Значение от 0 до 1.","dimension_type.bed_works":"Работает Кровать","dimension_type.bed_works.help":"Если значение установлено в true, игроки могут использовать кровати для того, чтобы устанавливать свою точку возрождения и продвинуться во времени. Если значение установлено в false, кровать будут взрываться при использовании.","dimension_type.coordinate_scale":"Масштаб координат","dimension_type.coordinate_scale.help":"Множитель, который применяется к координатам при перемезении между измерениями через портал или при помощи команды /execute.","dimension_type.effects":"Эффекты","dimension_type.effects.help":"Эффекты неба","dimension_type.effects.overworld":"Верхний Мир","dimension_type.effects.the_end":"Край","dimension_type.effects.the_nether":"Ад","dimension_type.fixed_time":"Фиксированное время","dimension_type.fixed_time.help":"При указании значения солнце будет находится в фиксированном положении.","dimension_type.has_ceiling":"Есть крыша из бедрока","dimension_type.has_ceiling.help":"Влияет на погоду, элементы карты и правила возрождения.","dimension_type.has_raids":"Имеет Рейды","dimension_type.has_raids.help":"Если включено, игроки с эффектом Дурного Знамения могут вызвать рейд.","dimension_type.has_skylight":"Есть свет неба","dimension_type.has_skylight.help":"Влияет на погоду, принцип освещения и правила возрождения.","dimension_type.height":"Высота","dimension_type.height.help":"Общая высота, в которой существуют блоки. Макс Y = Мин Y + Высота.","dimension_type.infiniburn":"Вечногорящие блоки","dimension_type.infiniburn.help":"Тег блоков, определяющий, какие блоки будут гореть вечно.","dimension_type.logical_height":"Логическая Высота","dimension_type.logical_height.help":"Порталы не могут появляться, а хорус не может телепортировать игроков выше этой высоты.","dimension_type.min_y":"Мин Y","dimension_type.min_y.help":"Минимальная высота, в которой могут существовать блоки.","dimension_type.name":"ID","dimension_type.natural":"Земное","dimension_type.natural.help":"Если «Да», из порталов будут появляться зомбифицированные пиглины. Если «Нет», компас и часы будут крутиться случайным образом.","dimension_type.piglin_safe":"Пиглины не превращаются в зомби","dimension_type.piglin_safe.help":"Если выключено, пиглины будут трястись и преврашаться в зомбифицированных пиглинов.","dimension_type.respawn_anchor_works":"Якорь Возрождения Работает","dimension_type.respawn_anchor_works.help":"Если включено, игроки могут заряжать и использовать якори возрождения, для установки спавнпоинтов. Если выключено, якори возрождения взрываются при использовании.","dimension_type.ultrawarm":"Горячее","dimension_type.ultrawarm.help":"Определяет, испаряется ли вода и высыхают ли губки.","distance.absolute":"Абсолютное","distance.horizontal":"Горизонтальное","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Подводник","enchantment.bane_of_arthropods":"Бич членистоногих","enchantment.binding_curse":"Проклятие несъёмности","enchantment.blast_protection":"Взрывоустойчивость","enchantment.channeling":"Громовержец","enchantment.depth_strider":"Подводная ходьба","enchantment.efficiency":"Эффективность","enchantment.enchantment":"Чары","enchantment.feather_falling":"Невесомость","enchantment.fire_aspect":"Заговор огня","enchantment.fire_protection":"Огнеупорность","enchantment.flame":"Горящая стрела","enchantment.fortune":"Удача","enchantment.frost_walker":"Ледоход","enchantment.impaling":"Пронзатель","enchantment.infinity":"Бесконечность","enchantment.knockback":"Отдача","enchantment.levels":"Уровень","enchantment.looting":"Добыча","enchantment.loyalty":"Верность","enchantment.luck_of_the_sea":"Везучий рыбак","enchantment.lure":"Приманка","enchantment.mending":"Починка","enchantment.multishot":"Тройной выстрел","enchantment.piercing":"Пронзающая стрела","enchantment.power":"Сила","enchantment.projectile_protection":"Защита от снарядов","enchantment.protection":"Защита","enchantment.punch":"Откидывание","enchantment.quick_charge":"Быстрая перезарядка","enchantment.respiration":"Подводное дыхание","enchantment.riptide":"Тягун","enchantment.sharpness":"Острота","enchantment.silk_touch":"Шёлковое касание","enchantment.smite":"Небесная кара","enchantment.sweeping":"Разящий клинок","enchantment.thorns":"Шипы","enchantment.unbreaking":"Прочность","enchantment.vanishing_curse":"Проклятие утраты","entity.distance":"Расстояние","entity.effects":"Эффекты","entity.equipment":"Снаряжение","entity.fishing_hook":"Поплавок","entity.fishing_hook.in_open_water":"В открытой воде","entity.flags":"Состояние","entity.isBaby":"Ребёнок","entity.isOnFire":"Горит","entity.isSneaking":"Крадётся","entity.isSprinting":"Бежит","entity.isSwimming":"Плывёт","entity.location":"Местоположение","entity.nbt":"NBT","entity.player":"Игрок","entity.targeted_entity":"Целевая сущность","entity.team":"Команда","entity.type":"Сущность","entity.vehicle":"Транспорт","entity_source.direct_killer":"Убийца-причина урона","entity_source.killer":"Убийца","entity_source.killer_player":"Игрок-убийца","entity_source.this":"Текущая","entry":"Элемент","error":"Ошибка","error.expected_boolean":"Ожидался логический тип данных (Boolean)","error.expected_integer":"Ожидалось целое число (Integer)","error.expected_json":"Ожидался JSON","error.expected_list":"Ожидался массив (Array)","error.expected_number":"Ожидалось число","error.expected_object":"Ожидался объект","error.expected_range":"Ожидался диапазон","error.expected_string":"Ожидалась строка","error.expected_uniform_int":"Ожидалось целое число (Uniform integer)","error.height_multiple":"Высота должна быть кратна %0%","error.invalid_binomial":"Диапазон не может быть биноминального типа","error.invalid_empty_list":"Массив не может быть пустым","error.invalid_empty_string":"Строка не может быть пустой","error.invalid_enum_option":"Неверное значение \\"%0%\\"","error.invalid_exact":"Диапазон не может быть константой","error.invalid_list_range.larger":"Длина списка %0% больше максимальной %1%","error.invalid_list_range.smaller":"Длина списка %0% меньше минимальной %1%","error.invalid_number_range.between":"Ожидалось число в промежутке от %1% до %2%","error.invalid_pattern":"Неверная строка: %0%","error.min_y_multiple":"Минимальная Высота должна быть кратна %0%","error.min_y_plus_height":"Минимальная Высота + высота не могут быть больше чем %0%","error.recipe.invalid_key":"только один символ разрешён как ключ","false":"Нет","feature.bamboo.probability":"Вероятность","feature.basalt_columns.height":"Высота","feature.block_pile.state_provider":"Состояние","feature.config":"Настройки","feature.decorated.decorator":"Декоратор","feature.decorated.feature":"Объект","feature.disk.radius":"Радиус","feature.disk.state":"Состояние","feature.disk.targets":"Цели","feature.disk.targets.entry":"Состояние","feature.dripstone_cluster.height":"","feature.dripstone_cluster.height_deviation":"","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Максимальное расстояние от края, меняющее шанс появления колонн капельников.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Максимальная разница в высоте между сталагмитами и сталактитами.","feature.dripstone_cluster.radius":"Радиус","feature.emerald_ore.state":"Состояние","feature.emerald_ore.target":"Цель","feature.end_gateway.exact":"Точный телепорт","feature.end_gateway.exit":"Выход","feature.fill_layer.height":"Высота","feature.fill_layer.state":"Состояние","feature.flower.blacklist":"Чёрный список","feature.flower.block_placer":"Размещение блоков","feature.flower.can_replace":"Может заменить","feature.flower.feature":"Размещаемый объект","feature.flower.need_water":"Требуется вода","feature.flower.project":"Проекция","feature.flower.state_provider":"Источник состояния","feature.flower.tries":"Попыток","feature.flower.whitelist":"Белый список","feature.flower.xspread":"Распространение по X","feature.flower.xz_spread":"Распространение по XZ","feature.flower.y_spread":"Распространение по Y","feature.flower.yspread":"Распространение по Y","feature.flower.zspread":"Распространение по Z","feature.forest_rock.state":"Состояние","feature.fossil.max_empty_corners_allowed.help":"Если больше углов контактируют с воздухом, размещение структуры отменяется.","feature.geode.blocks.invalid_blocks.help":"Когда встречается неподходящий блок, размещение структуры отменяется.","feature.glow_lichen.can_be_placed_on.entry":"Состояние","feature.glow_lichen.chance_of_spreading":"Вероятность распространения","feature.glow_lichen.search_range":"Радиус поиска","feature.huge_brown_mushroom.cap_provider":"Источник шляпки","feature.huge_brown_mushroom.foliage_radius":"Радиус шляпки","feature.huge_brown_mushroom.stem_provider":"Источник ножки","feature.huge_fungus.decor_state":"Декорация","feature.huge_fungus.hat_state":"Шляпка","feature.huge_fungus.stem_state":"Ножка","feature.huge_red_mushroom.cap_provider":"Источник шляпки","feature.huge_red_mushroom.foliage_radius":"Радиус шляпки","feature.huge_red_mushroom.stem_provider":"Источник ножки","feature.ice_patch.radius":"Радиус","feature.ice_patch.state":"Состояние","feature.ice_patch.targets":"Цели","feature.ice_patch.targets.entry":"Состояние","feature.iceberg.state":"Состояние","feature.lake.state":"Состояние","feature.netherrack_replace_blobs.radius":"Радиус","feature.netherrack_replace_blobs.state":"Состояние","feature.netherrack_replace_blobs.target":"Цель","feature.no_bonemeal_flower.feature":"Размещаемый объект","feature.no_surface_ore.size":"Размер","feature.no_surface_ore.state":"Состояние","feature.no_surface_ore.target":"Цель","feature.object":"Произвольно","feature.ore.discard_chance_on_air_exposure":"Вероятность сброса при контакте с воздухом","feature.ore.size":"Размер","feature.ore.targets":"Цели","feature.ore.targets.entry.state":"Состояние","feature.ore.targets.entry.target":"Цель","feature.random_boolean_selector.feature_false":"Размещаемый объект 1","feature.random_boolean_selector.feature_true":"Размещаемый объект 2","feature.random_patch.blacklist":"Чёрный список","feature.random_patch.block_placer":"Размещение блоков","feature.random_patch.can_replace":"Может заменить","feature.random_patch.feature":"Размещаемый объект","feature.random_patch.need_water":"Требуется вода","feature.random_patch.project":"Проекция","feature.random_patch.state_provider":"Состояние","feature.random_patch.tries":"Попыток","feature.random_patch.whitelist":"Белый список","feature.random_patch.xspread":"Распространение по X","feature.random_patch.yspread":"Распространение по Y","feature.random_patch.zspread":"Распространение по Z","feature.random_selector.default":"По умолчанию","feature.random_selector.features":"Объекты","feature.random_selector.features.entry":"Объект","feature.random_selector.features.entry.chance":"Вероятность","feature.random_selector.features.entry.feature":"Размещаемый объект","feature.scattered_ore.discard_chance_on_air_exposure":"Вероятность сброса при контакте с воздухом","feature.scattered_ore.size":"Размер","feature.scattered_ore.targets":"Цели","feature.scattered_ore.targets.entry.state":"Состояние","feature.scattered_ore.targets.entry.target":"Цель","feature.sea_pickle.count":"Количество","feature.seagrass.probability":"Вероятность","feature.simple_block.place_in":"Разместить в","feature.simple_block.place_in.entry":"Состояние","feature.simple_block.place_on":"Разместить на","feature.simple_block.place_on.entry":"Состояние","feature.simple_block.place_under":"Разместить под","feature.simple_block.place_under.entry":"Состояние","feature.simple_block.to_place":"Состояние","feature.simple_random_selector.features":"Объекты","feature.simple_random_selector.features.entry":"Размещаемый объект","feature.spring_feature.state":"Состояние","feature.string":"Ссылка","feature.tree.decorators":"Декораторы","feature.tree.decorators.entry":"Декоратор дерева","feature.tree.foliage_placer":"Распределение листьев","feature.tree.heightmap":"Карта Высоты","feature.tree.ignore_vines":"Игнорировать лианы","feature.tree.leaves_provider":"Источник листвы","feature.tree.max_water_depth":"Максимальная Глубина Воды","feature.tree.minimum_size":"Минимальный размер","feature.tree.minimum_size.limit":"Лимит","feature.tree.minimum_size.lower_size":"Низкий Размер","feature.tree.minimum_size.middle_size":"Средний Размер","feature.tree.minimum_size.type":"Минимальный размер","feature.tree.minimum_size.upper_limit":"Верхняя Граница","feature.tree.minimum_size.upper_size":"Высокий Размер","feature.tree.trunk_placer":"Распределение Обрезки","feature.tree.trunk_provider":"Обрезание Деревьев","feature.type":"Тип","fluid.fluid":"ID жидкости","fluid.state":"Состояние жидкости","fluid.tag":"Тег жидкостей","fluid_state.Name":"Жидкость","function.apply_bonus.enchantment":"Чары","function.apply_bonus.formula":"Формула","function.apply_bonus.formula.binomial_with_bonus_count":"Биноминальное распределение с бонусным количеством","function.apply_bonus.formula.ore_drops":"Дроп руд","function.apply_bonus.formula.uniform_bonus_count":"Равномерное распределение с бонусным количеством","function.apply_bonus.parameters":"Параметры","function.apply_bonus.parameters.bonusMultiplier":"Множитель","function.apply_bonus.parameters.extra":"Дополнительное значение","function.apply_bonus.parameters.probability":"Вероятность","function.copy_name.source":"Источник","function.copy_nbt.ops":"Операции с NBT","function.copy_nbt.ops.entry":"Операция","function.copy_nbt.source":"Источник","function.copy_state.block":"Блок","function.copy_state.properties":"Свойства","function.copy_state.properties.entry":"Свойство","function.enchant_randomly.enchantments":"Необязательные чары","function.enchant_randomly.enchantments.entry":"Чары","function.enchant_with_levels.levels":"Уровень","function.enchant_with_levels.treasure":"Чары-сокровища","function.exploration_map.decoration":"Значок","function.exploration_map.destination":"Назначение","function.exploration_map.search_radius":"Радиус поиска (в чанках)","function.exploration_map.skip_existing_chunks":"Не искать в существующих чанках","function.exploration_map.zoom":"Уровень приближения","function.fill_player_head.entity":"Сущность","function.function":"Функция","function.limit_count.limit":"Лимит","function.looting_enchant.count":"Количество","function.looting_enchant.limit":"Лимит","function.set_attributes.modifiers":"Модификаторы","function.set_attributes.modifiers.entry":"Модификатор","function.set_banner_pattern.append":"Добавить","function.set_banner_pattern.patterns":"Узоры","function.set_contents.entries":"Содержимое","function.set_contents.entries.entry":"Элемент","function.set_count.add":"Прибавить","function.set_count.add.help":"Если «Да», изменение будет относительно текущего количества","function.set_count.count":"Количество","function.set_damage.add":"Прибавить","function.set_damage.add.help":"Если «Да», изменение будет относительно текущего повреждения","function.set_damage.damage":"Повреждение","function.set_data.data":"Данные","function.set_enchantments.add":"Прибавить","function.set_enchantments.add.help":"Если «Да», изменение будет относительно текущего уровня","function.set_enchantments.enchantments":"Чары","function.set_loot_table.name":"ID таблицы добычи","function.set_loot_table.seed":"Ключ генератора","function.set_lore.entity":"Сущность","function.set_lore.lore":"Описание","function.set_lore.lore.entry":"Строка","function.set_lore.replace":"Заменить","function.set_name.entity":"Сущность","function.set_name.name":"Название","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Эффекты","function.set_stew_effect.effects.entry":"Эффект","function.set_stew_effect.effects.entry.duration":"Длительность","function.set_stew_effect.effects.entry.type":"Эффект","functions":"Функции","functions.entry":"Функция","gamemode.adventure":"Приключение","gamemode.creative":"Творческий","gamemode.spectator":"Наблюдатель","gamemode.survival":"Выживание","generation_step.air":"Воздух","generation_step.liquid":"Жидкость","generator.biome_source.altitude_noise":"Шум альтитуды","generator.biome_source.biome":"Биом","generator.biome_source.biomes":"Биомы","generator.biome_source.humidity_noise":"Шум влажности","generator.biome_source.large_biomes":"Большие биомы","generator.biome_source.legacy_biome_init_layer":"Старый слой инициализации биомов","generator.biome_source.preset":"Шаблон биомов","generator.biome_source.preset.nether":"Незер","generator.biome_source.scale":"Масштаб","generator.biome_source.seed":"Ключ генератора биомов","generator.biome_source.temperature_noise":"Шум температуры","generator.biome_source.type":"Источник биомов","generator.biome_source.weirdness_noise":"Шум странности","generator.seed":"Ключ генератора измерения","generator.settings":"Настройки генератора","generator.settings.biome":"Биом","generator.settings.lakes":"Озёра","generator.settings.layers":"Слои","generator.settings.layers.entry":"Слой","generator.settings.layers.entry.block":"ID блока","generator.settings.layers.entry.height":"Высота","generator.settings.object":"Произвольно","generator.settings.presets.amplified":"Расширенный","generator.settings.presets.caves":"Пещеры","generator.settings.presets.end":"Край","generator.settings.presets.floating_islands":"Парящие острова","generator.settings.presets.nether":"Ад","generator.settings.presets.overworld":"Верхний мир","generator.settings.string":"Шаблон","generator.settings.structures":"Структуры","generator.settings.structures.stronghold":"Крепость (Портал в Край)","generator.settings.structures.stronghold.count":"Количество","generator.settings.structures.stronghold.distance":"Расстояние","generator.settings.structures.stronghold.spread":"Распределение","generator.settings.structures.structures":"Структуры","generator.type":"Тип генератора","generator_biome.biome":"Биом","generator_biome.parameters":"Параметры","generator_biome.parameters.altitude":"Альтитуда","generator_biome.parameters.help":"Эти параметры определяют расположение биома. Каждый биом должен иметь уникальную комбинацию параметров. Биомы с похожими значениями будут генерироваться рядом.","generator_biome.parameters.humidity":"Влажность","generator_biome.parameters.offset":"Смещение","generator_biome.parameters.temperature":"Температура","generator_biome.parameters.weirdness":"Странность","generator_biome_noise.amplitudes":"Амплитуды","generator_biome_noise.amplitudes.entry":"Октава %0%","generator_biome_noise.firstOctave":"Первая октава","generator_structure.salt":"Соль","generator_structure.separation":"Изоляция","generator_structure.separation.help":"Минимальное расстояние в чанках между двумя структурами этого типа. Должно быть меньше чем интервал.","generator_structure.spacing":"Интервал","generator_structure.spacing.help":"Среднее расстояние в чанках между двумя структурами этого типа.","hide_source":"Скрыть источник","item.count":"Количество","item.durability":"Прочность","item.enchantments":"Чары","item.enchantments.entry":"Чары","item.item":"ID предмета","item.nbt":"NBT","item.potion":"Зелье","item.tag":"Тег предметов","key.advancements":"Достижения","key.attack":"Атаковать/Разрушить","key.back":"Идти назад","key.chat":"Открыть чат","key.command":"Открыть команды","key.drop":"Выбросить выбранный предмет","key.forward":"Идти вперёд","key.fullscreen":"Включить полноэкранный режим","key.hotbar.1":"Слот быстрого доступа 1","key.hotbar.2":"Слот быстрого доступа 2","key.hotbar.3":"Слот быстрого доступа 3","key.hotbar.4":"Слот быстрого доступа 4","key.hotbar.5":"Слот быстрого доступа 5","key.hotbar.6":"Слот быстрого доступа 6","key.hotbar.7":"Слот быстрого доступа 7","key.hotbar.8":"Слот быстрого доступа 8","key.hotbar.9":"Слот быстрого доступа 9","key.inventory":"Открыть/Закрыть инвентарь","key.jump":"Прыжок","key.left":"Идти влево","key.loadToolbarActivator":"Клавиша загрузки панели быстрого доступа","key.pickItem":"Выбрать блок","key.playerlist":"Список игроков","key.right":"Идти вправо","key.saveToolbarActivator":"Клавиша сохранения панели быстрого доступа","key.screenshot":"Сделать снимок экрана","key.smoothCamera":"Включить плавную камеру","key.sneak":"Присесть","key.spectatorOutlines":"Подсветить игроков (Режим наблюдателя)","key.sprint":"Бег","key.swapOffhand":"Переложить предмет в руках","key.togglePerspective":"Сменить перспективу","key.use":"Использовать предмет/Поставить блок","location.biome":"Биом","location.block":"Блок","location.dimension":"Измерение","location.feature":"Строение","location.fluid":"Жидкость","location.light":"Освещённость","location.light.light":"Уровень освещённости","location.position":"Позиция","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Задымлённое","loot_condition_type.alternative":"Альтернатива (ИЛИ)","loot_condition_type.block_state_property":"Свойства блока","loot_condition_type.damage_source_properties":"Источник урона","loot_condition_type.entity_properties":"Свойства сущности","loot_condition_type.entity_scores":"Счёты сущности","loot_condition_type.inverted":"Инвертирование (НЕ)","loot_condition_type.killed_by_player":"Убит игроком","loot_condition_type.location_check":"Местоположение","loot_condition_type.match_tool":"Свойства инструмента","loot_condition_type.random_chance":"Случайность","loot_condition_type.random_chance_with_looting":"Случайность с «Добычей»","loot_condition_type.reference":"Предикат","loot_condition_type.survives_explosion":"Переживает взрыв","loot_condition_type.table_bonus":"Бонус таблицы","loot_condition_type.time_check":"Время","loot_condition_type.value_check":"Значение","loot_condition_type.weather_check":"Погода","loot_entry.dynamic.name":"Название","loot_entry.item.name":"ID","loot_entry.loot_table.name":"ID таблицы добычи","loot_entry.quality":"Качество","loot_entry.tag.expand":"Отдельно","loot_entry.tag.expand.help":"Если отдельно, то действует как множество записей каждого предмета из тега, иначе возвращает всё содержимое тега.","loot_entry.tag.name":"ID тега предметов","loot_entry.type":"Тип","loot_entry.weight":"Вес","loot_function_type.apply_bonus":"Применить бонус","loot_function_type.copy_name":"Скопировать название","loot_function_type.copy_nbt":"Скопировать NBT","loot_function_type.copy_state":"Скопировать состояния блока","loot_function_type.enchant_randomly":"Наложить случайные чары","loot_function_type.enchant_with_levels":"Наложить чары за уровни","loot_function_type.exploration_map":"Задать свойства карты исследователя","loot_function_type.explosion_decay":"Разрушить взрывом","loot_function_type.fill_player_head":"Задать скин голове игрока","loot_function_type.furnace_smelt":"Расплавить в печи","loot_function_type.limit_count":"Ограничить количество","loot_function_type.looting_enchant":"Применить «Добычу»","loot_function_type.set_attributes":"Задать атрибуты","loot_function_type.set_banner_pattern":"Задать узор флага","loot_function_type.set_contents":"Задать содержимое","loot_function_type.set_count":"Задать количество","loot_function_type.set_damage":"Задать повреждение","loot_function_type.set_data":"Задать данные","loot_function_type.set_enchantments":"Задать чары","loot_function_type.set_loot_table":"Задать таблицу добычи","loot_function_type.set_lore":"Задать описание","loot_function_type.set_name":"Задать название","loot_function_type.set_nbt":"Задать NBT","loot_function_type.set_stew_effect":"Задать эффект загадочного рагу","loot_pool.bonus_rolls":"Бонусных бросков","loot_pool.entries":"Элементы","loot_pool.entries.entry":"Элемент","loot_pool.rolls":"Бросков","loot_pool.rolls.help":"Количество раз выбора случайной записи.","loot_pool_entry_type.alternatives":"Альтернатива","loot_pool_entry_type.alternatives.help":"Выбирает первую дочернюю запись, у которой выполняется условие.","loot_pool_entry_type.dynamic":"Динамический","loot_pool_entry_type.dynamic.help":"Возвращает особое содержимое блока.","loot_pool_entry_type.empty":"Ничего","loot_pool_entry_type.empty.help":"Возвращает пустую запись.","loot_pool_entry_type.group":"Группа","loot_pool_entry_type.group.help":"Выбирает все дочерние записи, у которых выполняются условия.","loot_pool_entry_type.item":"Предмет","loot_pool_entry_type.item.help":"Возвращает один предмет.","loot_pool_entry_type.loot_table":"Таблица добычи","loot_pool_entry_type.loot_table.help":"Возвращает содержимое другой таблицы добычи.","loot_pool_entry_type.sequence":"Последовательность","loot_pool_entry_type.sequence.help":"Выбирает все дочерние записи до первой записи, у которой условия не выполняются.","loot_pool_entry_type.tag":"Тег предметов","loot_pool_entry_type.tag.help":"Возвращает содержимое тега предметов.","loot_table.pools":"Пулы","loot_table.pools.entry":"Пул","luck_based":"Основано на удаче","nbt_operation.op":"Действие","nbt_operation.op.append":"Добавление","nbt_operation.op.merge":"Объединение","nbt_operation.op.replace":"Замена","nbt_operation.source":"Источник","nbt_operation.target":"Цель","nbt_provider.source":"Источник","nbt_provider.target":"Цель","nbt_provider.type":"Тип","nbt_provider.type.context":"Контекст+","nbt_provider.type.storage":"Хранилище","nbt_provider.type.string":"Контекст","noise_settings.aquifers_enabled":"Аквиферы","noise_settings.bedrock_floor_position":"Высота нижнего слоя коренной породы","noise_settings.bedrock_floor_position.help":"Положение нижнего уровня бедрока. Чем больше число, тем выше уровень.","noise_settings.bedrock_roof_position":"Высота верхнего слоя коренной породы","noise_settings.bedrock_roof_position.help":"Положение верхнего уровня бедрока относительно верха мира. Чем больше число, тем ниже уровень.","noise_settings.default_block":"Стандартный блок","noise_settings.default_fluid":"Стандартная жидкость","noise_settings.disable_mob_generation":"Отключить генерацию мобов","noise_settings.disable_mob_generation.help":"Определяет, появляются ли мобы во время генерации.","noise_settings.name":"ID","noise_settings.noise":"Параметры шума","noise_settings.noise.amplified":"Расширенный","noise_settings.noise.bottom_slide":"Низ кривой","noise_settings.noise.bottom_slide.help":"Добавляет или убирает рельеф в нижней части мира. Ничего не делает, когда размер равен 0.","noise_settings.noise.bottom_slide.offset":"Смещение низа кривой","noise_settings.noise.bottom_slide.offset.help":"Определяет диапазон в \'Смещение * Вертикальный размер * 4\' блоков от низа мира где плотность устанавливается до целевого значения.","noise_settings.noise.bottom_slide.size":"Размер низа кривой","noise_settings.noise.bottom_slide.size.help":"Определяет диапазон \'Размер * Вертикальный размер * 4\' блоков, где прежняя и целевая плотности интерполируются.","noise_settings.noise.bottom_slide.target":"Значение низа кривой","noise_settings.noise.bottom_slide.target.help":"Целевая плотность. Положительные значения добавляют рельеф, а отрицательные убирают.","noise_settings.noise.density_factor":"Множитель плотности","noise_settings.noise.density_factor.help":"Определяет какое высота оказывает влияние на рельеф. На положительных значениях рельеф генерируется внизу. Значения, близкие к нулю, производят равномерный пещеро-подобный рельеф.","noise_settings.noise.density_offset":"Смещение плотности","noise_settings.noise.density_offset.help":"Влияет на среднюю высоту рельефа. При значении в 0 высота равна половине альтитуды мира. Положительные значения увеличивают высоту.","noise_settings.noise.height":"Высота","noise_settings.noise.height.help":"Полная высота, где блоки могут генерироваться. Максимальная Высота = Минимальная Высота + Высота.","noise_settings.noise.island_noise_override":"Переопределение островным шумом","noise_settings.noise.island_noise_override.help":"Если «Да», ландшафт будет генерироваться в форме островов, похожую на ту, что в Энде.","noise_settings.noise.min_y.help":"Минимальная высота, где блоки начинают генерироваться.","noise_settings.noise.random_density_offset":"Случайное смещение плотности","noise_settings.noise.sampling":"Координатный масштаб","noise_settings.noise.sampling.xz_factor":"Множитель шума по X, Z","noise_settings.noise.sampling.xz_scale":"Уровень шума по X, Z","noise_settings.noise.sampling.y_factor":"Множитель шума по Y","noise_settings.noise.sampling.y_scale":"Уровень шума по Y","noise_settings.noise.simplex_surface_noise":"Симплекс-шум поверхности","noise_settings.noise.size_horizontal":"Размер по горизонтали","noise_settings.noise.size_vertical":"Размер по вертикали","noise_settings.noise.top_slide":"Верх кривой","noise_settings.noise.top_slide.help":"Добавляет или убирает рельеф в верхней части мира. Ничего не делает, когда размер равен 0.","noise_settings.noise.top_slide.offset":"Смещение верха кривой","noise_settings.noise.top_slide.offset.help":"Определяет диапазон в \'Смещение * Вертикальный Размер * 4\' блоков от верха мира где плотность устанавливается до целевого значения.","noise_settings.noise.top_slide.size":"Размер верха кривой","noise_settings.noise.top_slide.size.help":"Определяет диапазон \'Размер * Вертикальный размер * 4\' блоков, где прежняя и целевая плотности интерполируются.","noise_settings.noise.top_slide.target":"Значение верха кривой","noise_settings.noise.top_slide.target.help":"Целевая плотность. Положительные значения добавляют рельеф, а отрицательные убирают.","noise_settings.sea_level":"Уровень моря","number_provider.max":"Макс.","number_provider.min":"Мин.","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Множитель","number_provider.score":"Задача","number_provider.target":"Цель","number_provider.type":"Тип","number_provider.type.binomial":"Биномиально","number_provider.type.constant":"Константа+","number_provider.type.number":"Константа","number_provider.type.object":"Равномерно","number_provider.type.score":"Счёт","number_provider.type.uniform":"Равномерно+","number_provider.value":"Число","placed_feature.feature":"Настраиваемый объект","player.advancements":"Достижение","player.advancements.entry":"Достижение","player.gamemode":"Игровой режим","player.level":"Уровень опыта","player.recipes":"Рецепты","player.stats":"Статистика","player.stats.entry":"Статистика","processors.object":"Произвольно","processors.string":"Ссылка","range.binomial":"Биномиально","range.max":"Макс.","range.min":"Мин.","range.n":"N","range.number":"Число","range.object":"Диапазон","range.p":"P","range.type":"Тип","range.uniform":"Равномерно","recipe.group.help":"Идентификатор для группировки нескольких рецептов в книге рецептов.","requirements":"Требуются","score_provider.target":"Цель","score_provider.type":"Тип","score_provider.type.context":"Контекст+","score_provider.type.fixed":"Заданная","score_provider.type.string":"Контекст","slot.chest":"Тело","slot.feet":"Стопы","slot.head":"Голова","slot.legs":"Ноги","slot.mainhand":"Ведущая рука","slot.offhand":"Вторая рука","statistic.stat":"Статистика","statistic.type":"Тип","statistic.type.broken":"Сломано","statistic.type.crafted":"Создано","statistic.type.custom":"Пользовательский","statistic.type.dropped":"Выброшено","statistic.type.killed":"Убито","statistic.type.killedByTeam":"Был убит командой","statistic.type.killed_by":"Был убит","statistic.type.mined":"Вскопано","statistic.type.picked_up":"Подобрано","statistic.type.teamkill":"Убито из команды","statistic.type.used":"Использовано","statistic.value":"Значение","status_effect.ambient":"Из окружения","status_effect.amplifier":"Уровень","status_effect.duration":"Длительность","status_effect.visible":"Видимый","table.type":"Тип","table.type.block":"Блок","table.type.chest":"Сундук","table.type.empty":"Ничего","table.type.entity":"Сущность","table.type.fishing":"Рыбалка","table.type.generic":"Общий","tag.replace":"Заменить","tag.values":"Значения","template_element.feature":"Размещаемый объект","text_component":"Текстовый компонент","text_component.boolean":"Логический тип","text_component.list":"Список","text_component.number":"Число","text_component.object":"Объект","text_component.string":"Строка","text_component_object.block":"Блок","text_component_object.bold":"Жирный","text_component_object.clickEvent":"Действие по нажатию","text_component_object.clickEvent.action":"Действие","text_component_object.clickEvent.action.change_page":"Сменить страницу","text_component_object.clickEvent.action.copy_to_clipboard":"Скопировать в буфер обмена","text_component_object.clickEvent.action.open_file":"Открыть файл","text_component_object.clickEvent.action.open_url":"Открыть ссылку","text_component_object.clickEvent.action.run_command":"Выполнить команду","text_component_object.clickEvent.action.suggest_command":"Предложить команду","text_component_object.clickEvent.value":"Значение","text_component_object.color":"Цвет","text_component_object.entity":"Сущность","text_component_object.extra":"Дополнительно","text_component_object.font":"Шрифт","text_component_object.hoverEvent":"Действие по наведению","text_component_object.hoverEvent.action":"Действие","text_component_object.hoverEvent.action.show_entity":"Показать сущность","text_component_object.hoverEvent.action.show_item":"Показать предмет","text_component_object.hoverEvent.action.show_text":"Показать текст","text_component_object.hoverEvent.contents":"Содержимое","text_component_object.hoverEvent.value":"Значение","text_component_object.insertion":"Вставка","text_component_object.interpret":"Интерпретировать","text_component_object.italic":"Курсив","text_component_object.keybind":"Назначенная клавиша","text_component_object.nbt":"Данные сущности (NBT)","text_component_object.obfuscated":"Обфусцированный","text_component_object.score":"Счёт","text_component_object.score.name":"Имя","text_component_object.score.objective":"Счёт","text_component_object.score.value":"Значение","text_component_object.selector":"Селектор","text_component_object.storage":"Хранилище","text_component_object.strikethrough":"Зачёркнутый","text_component_object.text":"Простой текст","text_component_object.translate":"Переводимый текст","text_component_object.underlined":"Подчёркнутый","text_component_object.with":"Перевести с","true":"Да","uniform_int.base":"Начальное значение","uniform_int.number":"Точное","uniform_int.object":"Случайное число в промежутке","uniform_int.spread":"Распределение","unset":"Не задано","vertical_anchor.above_bottom":"Над нижней границей","vertical_anchor.absolute":"Абсолютная величина","vertical_anchor.below_top":"Под верхней границей","world.bonus_chest":"Бонусный сундук","world.generate_features":"Генерация строений","world.seed":"Ключ генератора мира","world_settings.generate_features":"Генерация строений","worldgen.warning":"Эта функция экспериментальная и крайне нестабильная. Она может измениться в будущих версиях. Есть вероятность, что произойдёт сбой игры при создании мира.","worldgen/biome_source.checkerboard":"Шахматный","worldgen/biome_source.checkerboard.help":"Биомы генерируются в шахматном порядке чанков.","worldgen/biome_source.fixed":"Один биом","worldgen/biome_source.fixed.help":"Один биом на весь мир.","worldgen/biome_source.multi_noise":"Множественный шум","worldgen/biome_source.multi_noise.help":"Произвольное распределение биомов с настраиваемыми параметрами.","worldgen/biome_source.the_end":"Энд","worldgen/biome_source.the_end.help":"Распределение биомов в Краю.","worldgen/biome_source.vanilla_layered":"Стандартный","worldgen/biome_source.vanilla_layered.help":"Распределение биомов в Верхнем мире.","worldgen/chunk_generator.debug":"Режим отладки","worldgen/chunk_generator.flat":"Суперплоскость","worldgen/chunk_generator.noise":"По умолчанию","worldgen/feature_size_type.three_layers_feature_size":"Три слоя","worldgen/feature_size_type.two_layers_feature_size":"Два слоя","worldgen/structure_pool_element.feature_pool_element":"Объект"}');export default e; +//# sourceMappingURL=ru.9fcdec57.js.map diff --git a/assets/ru.9fcdec57.js.map b/assets/ru.9fcdec57.js.map new file mode 100644 index 00000000..45dc5918 --- /dev/null +++ b/assets/ru.9fcdec57.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ru.9fcdec57.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/vendor.104f0f91.js b/assets/vendor.104f0f91.js new file mode 100644 index 00000000..f666ffd5 --- /dev/null +++ b/assets/vendor.104f0f91.js @@ -0,0 +1,38 @@ +var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,r,i)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[r]=i,s=(e,t)=>{for(var r in t||(t={}))n.call(t,r)&&a(e,r,t[r]);if(i)for(var r of i(t))o.call(t,r)&&a(e,r,t[r]);return e},c=(e,i)=>t(e,r(i)),l=e=>"symbol"==typeof e?e:e+"";const d={};var u,p,m,_,h,f={},g=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function y(e,t){for(var r in t)e[r]=t[r];return e}function v(e){var t=e.parentNode;t&&t.removeChild(e)}function N(e,t,r){var i,n,o,a=arguments,s={};for(o in t)"key"==o?i=t[o]:"ref"==o?n=t[o]:s[o]=t[o];if(arguments.length>3)for(r=[r],o=3;o0?x(m.type,m.props,m.key,null,m.__v):m)){if(m.__=r,m.__b=r.__b+1,null===(p=y[d])||p&&m.key==p.key&&m.type===p.type)y[d]=void 0;else for(u=0;ut.rank?-1:e.index-t.index}function Z(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,G(t).map(K).join(""));var t}(e),e.props}function G(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function K(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,V=[],Q=[],ee={};function te(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:ee).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=V.length;t--;)if(V[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ie(e)}function ie(e){for(var t=!1,r=0;r0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){V.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),V.splice(V.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,r){return e.filter(Z).sort(W).map((function(e){var i=H(t,e.props.path,e.props);if(i){if(!1!==r){var n={url:t,matches:i};return J(n,i),delete n.ref,delete n.key,function(e,t,r){var i,n,o,a=arguments,s=y({},e.props);for(o in t)"key"==o?i=t[o]:"ref"==o?n=t[o]:s[o]=t[o];if(arguments.length>3)for(r=[r],o=3;o=r.__.length&&r.__.push({}),r.__[e]}function xe(e){return _e=1,function(e,t,r){var i=Ne(ue++,2);return i.t=e,i.__c||(i.__=[r?r(t):Me(void 0,t),function(e){var t=i.t(i.__[0],e);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=pe),i.__}(Me,e)}function we(e,t){var r=Ne(ue++,3);!u.__s&&Be(r.__H,t)&&(r.__=e,r.__H=t,pe.__H.__h.push(r))}function ke(e){return _e=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var r=Ne(ue++,7);return Be(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Se(e,t){return _e=8,Oe((function(){return e}),t)}function De(e){var t=pe.context[e.__c],r=Ne(ue++,9);return r.__c=e,t?(null==r.__&&(r.__=!0,t.sub(pe)),t.props.value):e.__}function Ae(e){var t=Ne(ue++,10),r=xe();return t.__=e,pe.componentDidCatch||(pe.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function Ce(){he.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(je),e.__H.__h.forEach(Fe),e.__H.__h=[]}catch(t){e.__H.__h=[],u.__e(t,e.__v)}})),he=[]}u.__b=function(e){pe=null,fe&&fe(e)},u.__r=function(e){ge&&ge(e),ue=0;var t=(pe=e.__c).__H;t&&(t.__h.forEach(je),t.__h.forEach(Fe),t.__h=[])},u.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==he.push(t)&&me===u.requestAnimationFrame||((me=u.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(i),Ee&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(r,100);Ee&&(t=requestAnimationFrame(r))})(Ce)),pe=void 0},u.__c=function(e,t){t.some((function(e){try{e.__h.forEach(je),e.__h=e.__h.filter((function(e){return!e.__||Fe(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],u.__e(r,e.__v)}})),ye&&ye(e,t)},u.unmount=function(e){ve&&ve(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(je)}catch(r){u.__e(r,t.__v)}};var Ee="function"==typeof requestAnimationFrame;function je(e){var t=pe;"function"==typeof e.__c&&e.__c(),pe=t}function Fe(e){var t=pe;e.__c=e.__(),pe=t}function Be(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Me(e,t){return"function"==typeof t?t(e):t}var Te="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Le={},Pe={},Ie={};Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.ModelPath=Ie.Path=Ie.relativePath=void 0,Ie.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Re{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new Re(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Re(this.modelArr.slice(1),this.contextArr)}pop(){return new Re(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Re([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new Re([...this.modelArr],[...this.contextArr,t])}copy(){return new Re([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new ze(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,r)=>e===this.modelArr[t+r]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Ie.Path=Re;class ze extends Re{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new ze(this.model,super.slice(e,t))}shift(){return new ze(this.model,super.shift())}pop(){return new ze(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new ze(this.model,super.modelPush(e))}contextPush(e){return new ze(this.model,super.contextPush(e))}copy(){return new ze(this.model,super.copy())}}Ie.ModelPath=ze;var Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.Errors=void 0;class $e{constructor(){this.errors=[]}add(e,t,...r){return this.errors.push({path:e,error:t,params:r}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}Ue.Errors=$e;var qe={};function Xe(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(qe,"__esModule",{value:!0}),qe.hexId=qe.quoteString=qe.escapeString=void 0,qe.escapeString=Xe,qe.quoteString=function(e){return`"${Xe(e)}"`};const Je=e=>("0"+e.toString(16)).substr(-2);qe.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Je).join("")},Object.defineProperty(Pe,"__esModule",{value:!0}),Pe.DataModel=void 0;const He=Ie,We=Ue,Ze=qe;class Ge{constructor(e,t){var r,i,n,o;this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50,this.verbose=null!==(i=null==t?void 0:t.verbose)&&void 0!==i&&i,this.wrapLists=null!==(n=null==t?void 0:t.wrapLists)&&void 0!==n&&n,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Ge.wrapLists(a):a,this.listeners=[],this.errors=new We.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,r){if(0===e.getArray().length)return void this.reset(t,!0);let i=this.data;e.pop().forEach((e=>{void 0!==i[e]&&"string"!=typeof i[e]&&"number"!=typeof i[e]||(this.wrapLists&&"number"==typeof e?i[e]={node:{},id:Ze.hexId()}:i[e]={}),i=this.wrapLists&&"number"==typeof e?i[e].node:i[e]})),null!==i&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?i.splice(e.last(),1):delete i[e.last()]:this.wrapLists&&"number"==typeof e.last()?i[e.last()]={node:t,id:Ze.hexId()}:i[e.last()]=t,r||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(i)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)}));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,r])=>{t[e]=this.unwrapLists(r)}));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}return e}}Pe.DataModel=Ge;var Ke,Ye={};Ke=Ye,Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.Keep=Ke.Opt=Ke.Has=Ke.Mod=Ke.Base=void 0,Ke.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...r){return e.base({node:this},t,...r)},canUpdate:()=>!1,update:()=>[]},Ke.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Ke.Has=(e,t)=>Ke.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Ke.Opt=function(e){return c(s({},e),{optional:()=>!0})},Ke.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.BooleanNode=void 0;const Qe=Pe,et=Ye;Ve.BooleanNode=()=>c(s({},et.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,i){return i.loose&&"boolean"!=typeof t&&(t=i.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var i;return(null!==(i=e.boolean)&&void 0!==i?i:e.base).call(e,{node:this},t,...r)}});var tt={},rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.ListNode=void 0;const it=Pe,nt=Ye;rt.ListNode=(e,t)=>{var r,i;const n=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,o=null!==(i=null==t?void 0:t.maxLength)&&void 0!==i?i:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},nt.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map((t=>e.default())):[],navigate(t,r){const i=r+1;return t.getArray().length<=i?this:e.navigate(t,i)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,i,s){if(s.loose&&!Array.isArray(r)&&(r=s.wrapLists?it.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(r))return i.add(t,"error.expected_list"),r;a&&(r.lengtho)?n===o?i.add(t,"error.invalid_list_range.exact",r.length,n):i.add(t,"error.invalid_list_range.between",r.length,n,o):r.lengtho&&i.add(t,"error.invalid_list_range.larger",r.length,o);const c=r.map(((r,n)=>{const o=e.validate(t.push(n),s.wrapLists?r.node:r,i,s);return s.wrapLists?{node:o,id:r.id}:o}));for(const e of Object.getOwnPropertySymbols(r))c[e]=r[e];return c},hook(r,i,...n){var o;return(null!==(o=r.list)&&void 0!==o?o:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},i,...n)}})};var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.SwitchNode=void 0;const at=Ye;ot.SwitchNode=e=>c(s({},at.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var r;const i=t+1;return null===(r=this.activeCase(e.slice(0,i)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,i;return null!==(i=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==i?i:e},suggest(t,r){var i,n;return null!==(n=null===(i=this.activeCase(t))||void 0===i?void 0:i.node.suggest(t,r))&&void 0!==n?n:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,i){let n=this.activeCase(e);return void 0===n?t:n.node.validate(e,t,r,i)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const i=(e,t)=>{var r,i;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(i=e.priority)&&void 0!==i?i:0)},n=e.filter((e=>e.match(t))).sort(i);return r&&0===n.length?e.sort(i)[0]:n.length>0?n[0]:void 0},hook(e,t,...r){return this.activeCase(t,!0).node.hook(e,t,...r)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=rt,r=ot;e.ChoiceNode=(e,t)=>{const i=r.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},i),{validate(e,t,r,n){let o=i.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,r,n)},hook(r,n,...o){var a;return(null!==(a=r.choice)&&void 0!==a?a:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:i},n,...o)}})};const i=r=>(i,n)=>e.ChoiceNode([{type:r,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:t.ListNode(i),change:e=>e?[e]:[]}],n);e.ObjectOrList=i("object"),e.StringOrList=i("string"),e.ObjectOrPreset=(t,r,i)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(i)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=i[e])&&void 0!==t?t:i[Object.keys(i)[0]]}}])}(tt);var st={};Object.defineProperty(st,"__esModule",{value:!0}),st.MapNode=void 0;const ct=Ye,lt=Pe;st.MapNode=(e,t,r)=>c(s({},ct.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const i=r+1;return e.getArray().length<=i?this:t.navigate(e,i)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,i,n,o){if(o.loose&&"object"!=typeof i&&(i=o.wrapLists?lt.DataModel.wrapLists(this.default()):this.default()),null===i||"object"!=typeof i)return n.add(r,"error.expected_object"),i;const a={};Object.keys(i).forEach((s=>{e.validate(r,s,n,o),a[s]=t.validate(r.push(s),i[s],n,o)}));for(const e of Object.getOwnPropertySymbols(i))a[e]=i[e];return a},validationOption(t){var i;return null!==(i=null==r?void 0:r.validation)&&void 0!==i?i:e.validationOption(t.push(""))},hook(i,n,...o){var a;return(null!==(a=i.map)&&void 0!==a?a:i.base).call(i,{node:this,keys:e,children:t,config:null!=r?r:{}},n,...o)}});var dt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Le,r=Pe,i=Ye;e.NumberNode=e=>{var t,n,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(n=null==e?void 0:e.min)&&void 0!==n?n:-1/0,d=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,u=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},i.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,i,n){return n.loose&&"number"!=typeof t&&(t=n.wrapLists?r.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?i.add(e,"error.expected_number"):a&&!Number.isInteger(t)?i.add(e,"error.expected_integer"):u&&(td)?i.add(e,"error.invalid_number_range.between",t,l,d):td&&i.add(e,"error.invalid_number_range.larger",t,d),t},hook(t,r,...i){var n;return(null!==(n=t.number)&&void 0!==n?n:t.base).call(t,{node:this,integer:a,min:l,max:d,between:u,config:null!=e?e:{}},r,...i)}})},e.NumberEnum=({integer:r,values:i})=>t.Mod(e.NumberNode({integer:r}),(e=>({validate:(t,r,n,o)=>(r=e.validate(t,r,n,o),i.includes(r)||n.add(t,"error.invalid_number_enum",i.join(", ")),r)})))}(dt);var ut={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ye,r=Ie,a=Ue,d=qe,u=Pe;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(p,m)=>{var _,h;const f=p,{[_=e.Switch]:g,[h=e.Case]:b}=f,y=((e,t)=>{var r={};for(var a in e)n.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&i)for(var a of i(e))t.indexOf(a)<0&&o.call(e,a)&&(r[a]=e[a]);return r})(f,[l(_),l(h)]),v=e=>{if(void 0===g)return y;const t=r.relativePath(e,g).get(),i=b[t];return s(s({},y),i)},N=(e,t)=>{var i;const n=g?r.relativePath(e,g).get():void 0,o=g&&null!==(i=b[n])&&void 0!==i?i:{},a=Object.keys(o),s=(null==m?void 0:m.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[m.context])):e;return(!(null==m?void 0:m.disableSwitchContext)&&n&&a.includes(t)?s.contextPush(n):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==m?void 0:m.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,i=e.getArray();if(i.length<=r)return this;const n=v(e.slice(0,r))[i[r]];return null==n?void 0:n.navigate(e,r)},pathPush:(e,t)=>N(e,t.toString()),suggest(e,t){const r=v(e),i=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!i.includes(e))).map(d.quoteString)},validate(e,t,i,n){if(n.loose&&"object"!=typeof t&&(t=n.wrapLists?u.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return i.add(e,"error.expected_object"),t;let o=y;if(g){const i=r.relativePath(e,g);let c=i.get();if(e.equals(i.pop())){const r=i.last();c=y[r].validate(e.push(r),t[r],new a.Errors,n)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),d=new Set([...l,...Object.keys(t)]),p={};d.forEach((r=>{if(c.includes(r)){if(!o[r].enabled(e))return;const a=o[r].validate(e.push(r),t[r],i,n);!o[r].keep()&&o[r].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete p[r]:(p[r]=a,e.getModel().set(e.push(r),a,!0))}else p[r]=t[r]}));for(const r of Object.getOwnPropertySymbols(t))p[r]=t[r];return p},hook(e,t,...r){var i;return(null!==(i=e.object)&&void 0!==i?i:e.base).call(e,{node:this,fields:y,config:null!=m?m:{},filter:g,cases:b,getActiveFields:v,getChildModelPath:N},t,...r)}})}}(ut);var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.Reference=void 0,pt.Reference=(e,t)=>({type(r){return e.get(t).type.bind(this)(r)},category(r){return e.get(t).category.bind(this)(r)},default(){return e.get(t).default.bind(this)()},transform:(r,i)=>e.get(t).transform(r,i),enabled(r){return e.get(t).enabled.bind(this)(r)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(r,i){return e.get(t).navigate.bind(this)(r,i)},pathPush(r,i){return e.get(t).pathPush.bind(this)(r,i)},suggest(r,i){return e.get(t).suggest.bind(this)(r,i)},validate(r,i,n,o){return e.get(t).validate.bind(this)(r,i,n,o)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,i,...n){return e.get(t).hook.bind(this)(r,i,...n)},activeCase(r,i){return e.get(t).activeCase.bind(this)(r,i)},canUpdate(r,i){return e.get(t).canUpdate.bind(this)(r,i)},update(r,i){return e.get(t).update.bind(this)(r,i)}});var mt={};Object.defineProperty(mt,"__esModule",{value:!0}),mt.StringNode=void 0;const _t=Ye,ht=qe,ft=Pe,gt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},bt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};mt.StringNode=(e,t)=>{const r=()=>{var r,i,n,o;if(gt(t))return"string"==typeof t.enum?null!==(r=null==e?void 0:e.get(t.enum))&&void 0!==r?r:[]:t.enum;if("resource"===(null==t?void 0:t.validator)){if("string"==typeof t.params.pool){if(t.params.requireTag)return null!==(i=null==e?void 0:e.get(`tag/${t.params.pool}`).map((e=>`#${e}`)))&&void 0!==i?i:[];const r=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag&&null!==(n=null==e?void 0:e.get(`tag/${r}`).map((e=>`#${e}`)))&&void 0!==n?n:[],...null!==(o=null==e?void 0:e.get(r))&&void 0!==o?o:[]]}return t.params.pool}return[]};return c(s({},_t.Base),{type:()=>"string",default:()=>"",validate(e,i,n,o){if(o.loose&&"string"!=typeof i&&(i=(o.wrapLists?ft.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof i)return n.add(e,"error.expected_string"),i;if(bt(t)){if("resource"===t.validator&&i.length>0&&!i.includes(":")&&(i=i.startsWith("#")?"#minecraft:"+i.slice(1):"minecraft:"+i),"resource"===t.validator&&"string"==typeof i){let r=i;if(i.startsWith("#")){if("string"==typeof t.params.pool&&t.params.pool.startsWith("$tag/"))return n.add(e,"error.disallowed_tag_prefix"),i;if(!t.params.allowTag&&!t.params.requireTag)return n.add(e,"error.disallowed_tag"),i;r=r.slice(1)}else if(t.params.requireTag)return n.add(e,"error.expected_tag"),i;if(!r.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return n.add(e,"error.invalid_resource_location"),i}if("resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&i.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return i}if(gt(t)&&t.additional)return i;const a=r();return a.length>0&&!a.includes(i)&&n.add(e,"error.invalid_enum_option",i),i},suggest:()=>r().map(ht.quoteString),validationOption:()=>bt(t)?t:void 0,hook(e,i,...n){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:r,config:t},i,...n)}})};var yt={};Object.defineProperty(yt,"__esModule",{value:!0});var vt={};Object.defineProperty(vt,"__esModule",{value:!0}),vt.CollectionRegistry=vt.SchemaRegistry=void 0;vt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};vt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var Nt={};Object.defineProperty(Nt,"__esModule",{value:!0}),function(e){var t=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),r=Te&&Te.__exportStar||function(e,r){for(var i in e)"default"===i||r.hasOwnProperty(i)||t(r,e,i)};Object.defineProperty(e,"__esModule",{value:!0}),r(Pe,e),r(Ie,e),r(Ue,e),r(Ye,e),r(Ve,e),r(tt,e),r(rt,e),r(st,e),r(dt,e),r(ut,e),r(pt,e),r(mt,e),r(ot,e),r(yt,e),r(vt,e),r(Nt,e)}(Le);var xt=function(e){return(e=e||{}).circles?function(e){var t=[],r=[];return e.proto?function e(n){if("object"!=typeof n||null===n)return n;if(n instanceof Date)return new Date(n);if(Array.isArray(n))return i(n,e);if(n instanceof Map)return new Map(i(Array.from(n),e));if(n instanceof Set)return new Set(i(Array.from(n),e));var o={};for(var a in t.push(n),r.push(o),n){var s=n[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(i(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(i(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=wt(s);else{var c=t.indexOf(s);o[a]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),o}:function e(n){if("object"!=typeof n||null===n)return n;if(n instanceof Date)return new Date(n);if(Array.isArray(n))return i(n,e);if(n instanceof Map)return new Map(i(Array.from(n),e));if(n instanceof Set)return new Set(i(Array.from(n),e));var o={};for(var a in t.push(n),r.push(o),n)if(!1!==Object.hasOwnProperty.call(n,a)){var s=n[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(i(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(i(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=wt(s);else{var c=t.indexOf(s);o[a]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),o};function i(e,i){for(var n=Object.keys(e),o=new Array(n.length),a=0;a({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,i;return void 0===e?0:null!==(i=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==i?i:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:n({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:n({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:n({enum:"entity_source"}),scores:t.MapNode(n({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(At);var Ct={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Le,r=At;e.initPredicatesSchemas=function(i,n){const o=t.Reference.bind(void 0,i),a=t.StringNode.bind(void 0,n),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);i.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(r.Range()),durability:t.Opt(r.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),i.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(r.Range())},{context:"enchantment"})),i.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),i.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(r.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},i.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),i.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:r.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),i.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(r.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),i.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(r.Range()),duration:t.Opt(r.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),i.register("distance_predicate",t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range()),absolute:t.Opt(r.Range()),horizontal:t.Opt(r.Range())},{context:"distance"})),i.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),i.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),i.register("damage_predicate",t.ObjectNode({dealt:t.Opt(r.Range()),taken:t.Opt(r.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Ct),Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.initAdvancementSchemas=void 0;const Et=Le,jt=At,Ft=Ct;Dt.initAdvancementSchemas=function(e,t){const r=Et.Reference.bind(void 0,e),i=Et.StringNode.bind(void 0,t);e.register("advancement",Et.Mod(Et.ObjectNode({display:Et.Opt(Et.Mod(Et.ObjectNode({icon:Et.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:Et.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Et.Opt(i()),frame:Et.Opt(i({enum:["task","challenge","goal"]})),show_toast:Et.Opt(Et.BooleanNode()),announce_to_chat:Et.Opt(Et.BooleanNode()),hidden:Et.Opt(Et.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Et.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:Et.MapNode(i(),r("advancement_criteria")),requirements:Et.Opt(Et.ListNode(Et.ListNode(i()))),rewards:Et.Opt(Et.ObjectNode({function:Et.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:Et.Opt(Et.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Et.Opt(Et.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:Et.Opt(Et.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Et.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Et.Opt(Et.ObjectNode({[Et.Switch]:["pop",{push:"trigger"}],[Et.Case]:{"minecraft:bee_nest_destroyed":{block:Et.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:Et.Opt(Et.NumberNode({integer:!0})),item:Et.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:Et.Opt(r("entity_predicate")),partner:Et.Opt(r("entity_predicate")),child:Et.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:Et.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Et.Opt(i({enum:"dimension"})),to:Et.Opt(i({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Et.Opt(Et.ListNode(Et.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:Et.Opt(jt.Range())},"minecraft:consume_item":{item:Et.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Et.Opt(r("entity_predicate")),zombie:Et.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:Et.Opt(Et.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Et.Opt(i({validator:"resource",params:{pool:"block"}})),state:Et.Opt(Et.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Et.Opt(jt.Range()),item:Et.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Et.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:Et.Opt(r("entity_predicate")),killing_blow:Et.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Et.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Et.Opt(r("entity_predicate")),item:Et.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Ft.LocationFields,"minecraft:inventory_changed":{slots:Et.Opt(Et.ObjectNode({empty:Et.Opt(jt.Range()),occupied:Et.Opt(jt.Range()),full:Et.Opt(jt.Range())})),items:Et.Opt(Et.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Et.Opt(jt.Range()),durability:Et.Opt(jt.Range()),item:Et.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Et.Opt(jt.Range()),victims:Et.Opt(Et.ListNode(Et.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:Et.Opt(jt.Range()),duration:Et.Opt(jt.Range())},"minecraft:location":Ft.LocationFields,"minecraft:nether_travel":{distance:Et.Opt(jt.Range()),entered:Et.Opt(r("location_predicate")),exited:Et.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Et.Opt(i({validator:"resource",params:{pool:"block"}})),state:Et.Opt(Et.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Et.Opt(r("item_predicate")),location:Et.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:Et.Opt(r("damage_predicate")),entity:Et.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:Et.Opt(r("entity_predicate")),killing_blow:Et.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Et.Opt(Et.ObjectNode({block:Et.Opt(i({validator:"resource",params:{pool:"block"}})),tag:Et.Opt(i({validator:"resource",params:{pool:"$tag/block"}}))})),item:Et.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Ft.LocationFields,"minecraft:slide_down_block":{block:Et.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Et.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:Et.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:Et.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:Et.Opt(jt.Range())},"minecraft:used_totem":{item:Et.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Et.Opt(r("entity_predicate")),item:Et.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Ft.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Bt={},Mt={};Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initModelSchemas=void 0;const Tt=Le;Mt.initModelSchemas=function(e,t){Tt.Reference.bind(void 0,e);const r=Tt.StringNode.bind(void 0,t),i=(e,t,r)=>Tt.ListNode(Tt.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),n=Tt.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Tt.Mod(Tt.ObjectNode({parent:Tt.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Tt.Opt(Tt.BooleanNode()),gui_light:Tt.Opt(r({enum:"gui_light"})),textures:Tt.Opt(Tt.MapNode(r(),n)),elements:Tt.Opt(Tt.ListNode(Tt.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:Tt.Opt(Tt.ObjectNode({origin:i(3),axis:r({enum:"axis"}),angle:Tt.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Tt.Opt(Tt.BooleanNode())})),shade:Tt.Opt(Tt.BooleanNode()),faces:Tt.MapNode(r({enum:"direction"}),Tt.ObjectNode({texture:n,uv:Tt.Opt(i(4)),cullface:Tt.Opt(r({enum:"direction"})),rotation:Tt.Opt(Tt.NumberNode({integer:!0})),tintindex:Tt.Opt(Tt.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Tt.Opt(Tt.MapNode(r({enum:"display_position"}),Tt.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:Tt.Opt(Tt.ListNode(Tt.ObjectNode({predicate:Tt.MapNode(r({enum:"item_model_predicates"}),Tt.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Lt={};Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initBlockDefinitionSchemas=void 0;const Pt=Le;Lt.initBlockDefinitionSchemas=function(e,t){const r=Pt.Reference.bind(void 0,e),i=Pt.StringNode.bind(void 0,t);e.register("block_definition",Pt.Mod(Pt.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Pt.ObjectNode({variants:Pt.MapNode(i(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Pt.ObjectNode({multipart:Pt.ListNode(Pt.ObjectNode({when:Pt.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const n={model:i({validator:"resource",params:{pool:"$model"}}),x:Pt.Opt(Pt.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Pt.Opt(Pt.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Pt.Opt(Pt.BooleanNode())};e.register("model_variant",Pt.ChoiceNode([{type:"object",node:Pt.ObjectNode(n),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Pt.ListNode(Pt.ObjectNode(c(s({},n),{weight:Pt.Opt(Pt.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Pt.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Pt.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Pt.ObjectNode({OR:Pt.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.initAssetsSchemas=void 0;const It=Mt,Rt=Lt;Bt.initAssetsSchemas=function(e,t){Rt.initBlockDefinitionSchemas(e,t),It.initModelSchemas(e,t)};var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initConditionSchemas=void 0;const Ut=Le,$t=At;zt.initConditionSchemas=function(e,t){const r=Ut.Reference.bind(void 0,e),i=Ut.StringNode.bind(void 0,t);e.register("predicate",Ut.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Ut.Mod(Ut.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Ut.Switch]:[{push:"condition"}],[Ut.Case]:$t.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var qt={},Xt={};Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.LootFunctions=Xt.LootConditions=Xt.LootCopySources=Xt.LootEntitySources=Xt.LootTableTypes=void 0,Xt.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Xt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Xt.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Xt.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(qt,"__esModule",{value:!0}),qt.initLootTableSchemas=void 0;const Jt=Le,Ht=Xt,Wt=At;qt.initLootTableSchemas=function(e,t){const r=Jt.Reference.bind(void 0,e),i=Jt.StringNode.bind(void 0,t),n={conditions:Jt.Opt(Jt.ListNode(r("loot_condition")))},o=s({functions:Jt.Opt(Jt.ListNode(r("loot_function")))},n);function a(e,r,i){const n=[],o=i=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ht.LootTableTypes){const e=[...a,...s];n.push({match:e=>e.getModel().get(new Jt.Path(["type"]))===t,node:i(o(e))})}return n.push({match:e=>!0,node:i(r)}),Jt.SwitchNode(n)}const l=a(Ht.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),d=a(Ht.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ht.LootEntitySources,"entity_source",(e=>i({enum:e}))),p=a(Ht.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Jt.Mod(Jt.ObjectNode({type:Jt.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Jt.Opt(Jt.ListNode(Jt.Mod(Jt.ObjectNode(s({rolls:Wt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Jt.Opt(Wt.Range({integer:!0})),entries:Jt.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Jt.Opt(Jt.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const m={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Jt.Mod(Jt.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0,min:1}),m)),quality:Jt.Opt(Jt.Mod(Jt.NumberNode({integer:!0}),m)),[Jt.Switch]:[{push:"type"}],[Jt.Case]:{"minecraft:alternatives":s({children:Jt.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Jt.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Jt.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Jt.Opt(Jt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Jt.Mod(Jt.ObjectNode({function:d,[Jt.Switch]:[{push:"function"}],[Jt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Jt.Mod(Jt.ObjectNode({bonusMultiplier:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Jt.Mod(Jt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:p},"minecraft:copy_nbt":{source:p,ops:Jt.ListNode(Jt.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:Jt.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Jt.Opt(Jt.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Wt.Range({allowBinomial:!0}),treasure:Jt.Opt(Jt.BooleanNode())},"minecraft:exploration_map":{destination:Jt.Opt(i({enum:"structure_feature"})),decoration:Jt.Opt(i({enum:"map_decoration"})),zoom:Jt.Opt(Jt.NumberNode({integer:!0})),search_radius:Jt.Opt(Jt.NumberNode({integer:!0})),skip_existing_chunks:Jt.Opt(Jt.BooleanNode())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:Wt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Wt.Range({bounds:!0}),limit:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Jt.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Jt.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Wt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Wt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:Jt.Opt(Jt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Jt.Opt(u),lore:Jt.ListNode(r("text_component")),replace:Jt.Opt(Jt.BooleanNode())},"minecraft:set_name":{entity:Jt.Opt(u),name:Jt.Opt(r("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Jt.Opt(Jt.ListNode(Jt.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:Wt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),n)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Jt.Mod(Jt.ObjectNode({condition:l,[Jt.Switch]:[{push:"condition"}],[Jt.Case]:c(s({},Wt.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:Jt.MapNode(i({validator:"objective"}),Wt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Jt.Mod(Jt.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:Wt.Range({bounds:!0}),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Jt.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Zt={};Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.initPackMcmetaSchemas=void 0;const Gt=Le;Zt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Gt.Mod(Gt.ObjectNode({pack:Gt.Mod(Gt.ObjectNode({pack_format:Gt.Mod(Gt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Gt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Kt={};Object.defineProperty(Kt,"__esModule",{value:!0}),Kt.initRecipeSchemas=void 0;const Yt=Le;Kt.initRecipeSchemas=function(e,t){const r=Yt.Reference.bind(void 0,e),i=Yt.StringNode.bind(void 0,t);e.register("recipe",Yt.Mod(Yt.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Yt.Switch]:[{push:"type"}],[Yt.Case]:{"minecraft:crafting_shaped":{group:Yt.Opt(i({enum:"recipe_group",additional:!0})),pattern:Yt.ListNode(i()),key:Yt.MapNode(i(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Yt.Opt(i()),ingredients:Yt.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Yt.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yt.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yt.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yt.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yt.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Yt.NumberNode({integer:!0})},"minecraft:smithing":{group:Yt.Opt(i()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yt.Mod(Yt.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yt.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yt.Mod(Yt.ObjectNode({item:Yt.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Yt.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yt.Mod(Yt.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Vt={};Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.initTagsSchemas=void 0;const Qt=Le;Vt.initTagsSchemas=function(e,t){const r=Qt.StringNode.bind(void 0,t),i=e=>Qt.Mod(Qt.ObjectNode({replace:Qt.Opt(Qt.BooleanNode()),values:Qt.ListNode(Qt.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qt.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qt.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("item_tag",i("item"))};var er={};Object.defineProperty(er,"__esModule",{value:!0}),er.initTextComponentSchemas=void 0;const tr=Le;er.initTextComponentSchemas=function(e,t){const r=tr.Reference.bind(void 0,e),i=tr.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",tr.Mod(tr.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:n},{type:"number",node:tr.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:tr.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:tr.Opt(tr.BooleanNode()),italic:tr.Opt(tr.BooleanNode()),underlined:tr.Opt(tr.BooleanNode()),strikethrough:tr.Opt(tr.BooleanNode()),obfuscated:tr.Opt(tr.BooleanNode()),insertion:tr.Opt(i()),clickEvent:tr.Opt(tr.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[tr.Switch]:[{push:"action"}],[tr.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:tr.Opt(tr.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[tr.Switch]:[{push:"action"}],[tr.Case]:{show_text:{value:tr.Opt(r("text_component"))},show_item:{value:tr.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:tr.Opt(tr.ObjectNode({name:tr.Opt(i()),type:tr.Opt(i()),id:tr.Opt(i())}))}}})),extra:tr.Opt(r("text_component_list"))};e.register("text_component_object",tr.Mod(tr.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:tr.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:tr.ObjectNode(s({translate:i(),with:tr.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:tr.ObjectNode(s({score:tr.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:tr.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:tr.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:tr.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:tr.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:tr.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:tr.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:tr.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:tr.Opt(tr.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",tr.Mod(tr.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(St,"__esModule",{value:!0}),St.initSchemas=void 0;const rr=Dt,ir=Bt,nr=At,or=zt,ar=qt,sr=Zt,cr=Ct,lr=Kt,dr=Vt,ur=er;St.initSchemas=function(e,t){nr.initCommonSchemas(e,t),cr.initPredicatesSchemas(e,t),rr.initAdvancementSchemas(e,t),ir.initAssetsSchemas(e,t),or.initConditionSchemas(e,t),ar.initLootTableSchemas(e,t),sr.initPackMcmetaSchemas(e,t),lr.initRecipeSchemas(e,t),dr.initTagsSchemas(e,t),ur.initTextComponentSchemas(e,t)};var pr=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),mr=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),_r=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&pr(t,e,r);return mr(t,e),t};Object.defineProperty(kt,"__esModule",{value:!0});var hr=kt.getSchemas=kt.getCollections=void 0;const fr=Le,gr=Ot,br=St;var yr=kt.lootContext=_r(Xt);var vr=kt.getCollections=function(){const e=new fr.CollectionRegistry;return gr.initCollections(e),e};hr=kt.getSchemas=function(e){const t=new fr.SchemaRegistry;return br.initSchemas(t,e),t};var Nr=Object.freeze(Object.assign(Object.create(null),kt,{[Symbol.toStringTag]:"Module",get getSchemas(){return hr},get getCollections(){return vr},lootContext:yr,default:kt})),xr={},wr={};Object.defineProperty(wr,"__esModule",{value:!0}),wr.initCollections=void 0,wr.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var kr={},Or={},Sr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Le;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,i){const n=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,i;return void 0===e?0:null!==(i=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==i?i:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:n({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:n({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:n({enum:"entity_source"}),scores:t.MapNode(n({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Sr),Object.defineProperty(Or,"__esModule",{value:!0}),Or.initAdvancementSchemas=void 0;const Dr=Le,Ar=Sr;Or.initAdvancementSchemas=function(e,t){const r=Dr.Reference.bind(void 0,e),i=Dr.StringNode.bind(void 0,t),n=Dr.ChoiceNode([{type:"object",node:Dr.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Dr.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Dr.Mod(Dr.ObjectNode({display:Dr.Opt(Dr.Mod(Dr.ObjectNode({icon:Dr.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:Dr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Dr.Opt(i()),frame:Dr.Opt(i({enum:["task","challenge","goal"]})),show_toast:Dr.Opt(Dr.BooleanNode()),announce_to_chat:Dr.Opt(Dr.BooleanNode()),hidden:Dr.Opt(Dr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Dr.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:Dr.MapNode(i(),r("advancement_criteria")),requirements:Dr.Opt(Dr.ListNode(Dr.ListNode(i()))),rewards:Dr.Opt(Dr.ObjectNode({function:Dr.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:Dr.Opt(Dr.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Dr.Opt(Dr.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:Dr.Opt(Dr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Dr.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Dr.Opt(Dr.ObjectNode({player:Dr.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Dr.Switch]:["pop",{push:"trigger"}],[Dr.Case]:{"minecraft:bee_nest_destroyed":{block:Dr.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:Dr.Opt(Dr.NumberNode({integer:!0})),item:Dr.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:Dr.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Dr.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:Dr.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Dr.Opt(Dr.ListNode(n))},"minecraft:construct_beacon":{level:Dr.Opt(Ar.Range())},"minecraft:consume_item":{item:Dr.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:Dr.Opt(Dr.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Dr.Opt(i({validator:"resource",params:{pool:"block"}})),state:Dr.Opt(Dr.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Dr.Opt(Ar.Range()),item:Dr.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Dr.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:Dr.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Dr.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:Dr.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Dr.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Dr.Opt(Dr.ObjectNode({empty:Dr.Opt(Ar.Range()),occupied:Dr.Opt(Ar.Range()),full:Dr.Opt(Ar.Range())})),items:Dr.Opt(Dr.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Dr.Opt(Ar.Range()),durability:Dr.Opt(Ar.Range()),item:Dr.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Dr.Opt(r("item_predicate")),location:Dr.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Dr.Opt(Ar.Range()),victims:Dr.Opt(Dr.ListNode(n))},"minecraft:levitation":{distance:Dr.Opt(Ar.Range()),duration:Dr.Opt(Ar.Range())},"minecraft:location":{location:Dr.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:Dr.Opt(Ar.Range()),entered:Dr.Opt(r("location_predicate")),exited:Dr.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Dr.Opt(i({validator:"resource",params:{pool:"block"}})),state:Dr.Opt(Dr.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Dr.Opt(r("item_predicate")),location:Dr.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Dr.Opt(r("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:Dr.Opt(r("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:Dr.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Dr.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Dr.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Dr.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:Dr.Opt(Ar.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Dr.Opt(r("entity_predicate")),item:Dr.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Dr.Opt(Ar.Range())},"minecraft:used_totem":{item:Dr.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Dr.Opt(r("entity_predicate")),item:Dr.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Cr={},Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.initModelSchemas=void 0;const jr=Le;Er.initModelSchemas=function(e,t){jr.Reference.bind(void 0,e);const r=jr.StringNode.bind(void 0,t),i=(e,t,r)=>jr.ListNode(jr.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),n=jr.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",jr.Mod(jr.ObjectNode({parent:jr.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:jr.Opt(jr.BooleanNode()),gui_light:jr.Opt(r({enum:"gui_light"})),textures:jr.Opt(jr.MapNode(r(),n)),elements:jr.Opt(jr.ListNode(jr.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:jr.Opt(jr.ObjectNode({origin:i(3),axis:r({enum:"axis"}),angle:jr.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:jr.Opt(jr.BooleanNode())})),shade:jr.Opt(jr.BooleanNode()),faces:jr.MapNode(r({enum:"direction"}),jr.ObjectNode({texture:n,uv:jr.Opt(i(4)),cullface:jr.Opt(r({enum:"direction"})),rotation:jr.Opt(jr.NumberNode({integer:!0})),tintindex:jr.Opt(jr.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:jr.Opt(jr.MapNode(r({enum:"display_position"}),jr.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:jr.Opt(jr.ListNode(jr.ObjectNode({predicate:jr.MapNode(r({enum:"item_model_predicates"}),jr.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Fr={};Object.defineProperty(Fr,"__esModule",{value:!0}),Fr.initBlockDefinitionSchemas=void 0;const Br=Le;Fr.initBlockDefinitionSchemas=function(e,t){const r=Br.Reference.bind(void 0,e),i=Br.StringNode.bind(void 0,t);e.register("block_definition",Br.Mod(Br.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Br.ObjectNode({variants:Br.MapNode(i(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Br.ObjectNode({multipart:Br.ListNode(Br.ObjectNode({when:Br.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const n={model:i({validator:"resource",params:{pool:"$model"}}),x:Br.Opt(Br.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Br.Opt(Br.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Br.Opt(Br.BooleanNode())};e.register("model_variant",Br.ChoiceNode([{type:"object",node:Br.ObjectNode(n),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Br.ListNode(Br.ObjectNode(c(s({},n),{weight:Br.Opt(Br.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Br.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Br.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Br.ObjectNode({OR:Br.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initAssetsSchemas=void 0;const Mr=Er,Tr=Fr;Cr.initAssetsSchemas=function(e,t){Tr.initBlockDefinitionSchemas(e,t),Mr.initModelSchemas(e,t)};var Lr={};Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.initConditionSchemas=void 0;const Pr=Le,Ir=Sr;Lr.initConditionSchemas=function(e,t){const r=Pr.Reference.bind(void 0,e),i=Pr.StringNode.bind(void 0,t);e.register("predicate",Pr.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Pr.Mod(Pr.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[Pr.Switch]:[{push:"condition"}],[Pr.Case]:Ir.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.initDimensionSchemas=void 0;const zr=Le,Ur=Sr;Rr.initDimensionSchemas=function(e,t){const r=zr.Reference.bind(void 0,e),i=zr.StringNode.bind(void 0,t),n=e=>zr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",zr.Mod(zr.ObjectNode({type:Ur.DimensionTypePresets(r("dimension_type")),generator:zr.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[zr.Switch]:[{push:"type"}],[zr.Case]:{"minecraft:noise":{seed:zr.NumberNode({integer:!0}),settings:Ur.NoiseSettingsPresets(r("noise_settings")),biome_source:zr.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[zr.Switch]:[{push:"type"}],[zr.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:zr.NumberNode({integer:!0}),preset:zr.Opt(i({enum:["nether"]})),altitude_noise:n(r("generator_biome_noise")),temperature_noise:n(r("generator_biome_noise")),humidity_noise:n(r("generator_biome_noise")),weirdness_noise:n(r("generator_biome_noise")),biomes:n(zr.Mod(zr.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:zr.Opt(zr.NumberNode({integer:!0,min:0,max:62})),biomes:zr.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:zr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:zr.NumberNode({integer:!0}),large_biomes:zr.Opt(zr.BooleanNode()),legacy_biome_init_layer:zr.Opt(zr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:zr.ObjectNode({biome:zr.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:zr.Opt(zr.BooleanNode()),features:zr.Opt(zr.BooleanNode()),layers:zr.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",zr.Mod(zr.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:zr.ObjectNode({altitude:zr.NumberNode(),temperature:zr.NumberNode(),humidity:zr.NumberNode(),weirdness:zr.NumberNode(),offset:zr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",zr.Mod(zr.ObjectNode({firstOctave:zr.NumberNode({integer:!0}),amplitudes:zr.ListNode(zr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var $r={};Object.defineProperty($r,"__esModule",{value:!0}),$r.initDimensionTypeSchemas=void 0;const qr=Le,Xr=Sr;$r.initDimensionTypeSchemas=function(e,t){const r=qr.StringNode.bind(void 0,t);e.register("dimension_type",qr.Mod(qr.ObjectNode({name:qr.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:qr.BooleanNode(),natural:qr.BooleanNode(),piglin_safe:qr.BooleanNode(),respawn_anchor_works:qr.BooleanNode(),bed_works:qr.BooleanNode(),has_raids:qr.BooleanNode(),has_skylight:qr.BooleanNode(),has_ceiling:qr.BooleanNode(),coordinate_scale:qr.NumberNode({min:1e-5,max:3e7}),ambient_light:qr.NumberNode(),fixed_time:qr.Opt(qr.NumberNode({integer:!0})),logical_height:qr.NumberNode({integer:!0,min:0,max:256}),effects:qr.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Xr.DefaultDimensionType}))};var Jr={},Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.LootFunctions=Hr.LootConditions=Hr.LootCopySources=Hr.LootEntitySources=Hr.LootTableTypes=void 0,Hr.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Hr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Hr.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.initLootTableSchemas=void 0;const Wr=Le,Zr=Hr,Gr=Sr;Jr.initLootTableSchemas=function(e,t){const r=Wr.Reference.bind(void 0,e),i=Wr.StringNode.bind(void 0,t),n={conditions:Wr.Opt(Wr.ListNode(r("loot_condition")))},o=s({functions:Wr.Opt(Wr.ListNode(r("loot_function")))},n);function a(e,r,i){const n=[],o=i=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Zr.LootTableTypes){const e=[...a,...s];n.push({match:e=>e.getModel().get(new Wr.Path(["type"]))===t,node:i(o(e))})}return n.push({match:e=>!0,node:i(r)}),Wr.SwitchNode(n)}const l=a(Zr.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),d=a(Zr.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Zr.LootEntitySources,"entity_source",(e=>i({enum:e}))),p=a(Zr.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Wr.Mod(Wr.ObjectNode({type:Wr.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Wr.Opt(Wr.ListNode(Wr.Mod(Wr.ObjectNode(s({rolls:Gr.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Wr.Opt(Gr.Range({integer:!0})),entries:Wr.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Wr.Opt(Wr.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const m={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Wr.Mod(Wr.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0,min:1}),m)),quality:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0}),m)),[Wr.Switch]:[{push:"type"}],[Wr.Case]:{"minecraft:alternatives":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Wr.Opt(Wr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Wr.Mod(Wr.ObjectNode({function:d,[Wr.Switch]:[{push:"function"}],[Wr.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Wr.Mod(Wr.ObjectNode({bonusMultiplier:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:p},"minecraft:copy_nbt":{source:p,ops:Wr.ListNode(Wr.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:Wr.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Wr.Opt(Wr.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Gr.Range({allowBinomial:!0}),treasure:Wr.Opt(Wr.BooleanNode())},"minecraft:exploration_map":{destination:Wr.Opt(i({enum:"map_feature"})),decoration:Wr.Opt(i({enum:"map_decoration"})),zoom:Wr.Opt(Wr.NumberNode({integer:!0})),search_radius:Wr.Opt(Wr.NumberNode({integer:!0})),skip_existing_chunks:Wr.Opt(Wr.BooleanNode())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:Gr.Range({bounds:!0})},"minecraft:looting_enchant":{count:Gr.Range({bounds:!0}),limit:Wr.Opt(Wr.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Wr.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Wr.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Gr.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Gr.Range({forceRange:!0})},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:Wr.Opt(Wr.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Wr.Opt(u),lore:Wr.ListNode(r("text_component")),replace:Wr.Opt(Wr.BooleanNode())},"minecraft:set_name":{entity:Wr.Opt(u),name:Wr.Opt(r("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Wr.Opt(Wr.ListNode(Wr.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:Gr.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),n)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Wr.Mod(Wr.ObjectNode({condition:l,[Wr.Switch]:[{push:"condition"}],[Wr.Case]:c(s({},Gr.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:Wr.MapNode(i({validator:"objective"}),Gr.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Wr.Mod(Wr.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:Gr.Range({bounds:!0}),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Wr.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPackMcmetaSchemas=void 0;const Yr=Le;Kr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Yr.Mod(Yr.ObjectNode({pack:Yr.Mod(Yr.ObjectNode({pack_format:Yr.Mod(Yr.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Yr.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Vr={};Object.defineProperty(Vr,"__esModule",{value:!0}),Vr.initPredicatesSchemas=void 0;const Qr=Le,ei=Sr;Vr.initPredicatesSchemas=function(e,t){const r=Qr.Reference.bind(void 0,e),i=Qr.StringNode.bind(void 0,t),n=Qr.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Qr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Qr.ObjectNode({min:Qr.Opt(Qr.NumberNode({integer:!0})),max:Qr.Opt(Qr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Qr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Qr.ObjectNode({item:Qr.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Qr.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:Qr.Opt(ei.Range()),durability:Qr.Opt(ei.Range()),potion:Qr.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Qr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Qr.Opt(Qr.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Qr.ObjectNode({enchantment:Qr.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:Qr.Opt(ei.Range())},{context:"enchantment"})),e.register("block_predicate",Qr.ObjectNode({block:Qr.Opt(i({validator:"resource",params:{pool:"block"}})),tag:Qr.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Qr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Qr.Opt(Qr.MapNode(i(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Qr.ObjectNode({fluid:Qr.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Qr.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Qr.Opt(Qr.MapNode(i(),n))},{context:"fluid"})),e.register("location_predicate",Qr.ObjectNode({position:Qr.Opt(Qr.ObjectNode({x:Qr.Opt(ei.Range()),y:Qr.Opt(ei.Range()),z:Qr.Opt(ei.Range())})),biome:Qr.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Qr.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Qr.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Qr.Opt(Qr.ObjectNode({light:Qr.Opt(ei.Range({integer:!0,min:0,max:15}))})),smokey:Qr.Opt(Qr.BooleanNode()),block:Qr.Opt(r("block_predicate")),fluid:Qr.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Qr.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:ei.Range(),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Qr.ObjectNode({gamemode:Qr.Opt(i({enum:"gamemode"})),level:Qr.Opt(ei.Range()),advancements:Qr.Opt(Qr.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Qr.ChoiceNode([{type:"boolean",node:Qr.BooleanNode(),change:e=>!0},{type:"object",node:Qr.MapNode(i(),Qr.BooleanNode())}]))),recipes:Qr.Opt(Qr.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Qr.BooleanNode())),stats:Qr.Opt(Qr.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Qr.ObjectNode({amplifier:Qr.Opt(ei.Range()),duration:Qr.Opt(ei.Range()),ambient:Qr.Opt(Qr.BooleanNode()),visible:Qr.Opt(Qr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Qr.ObjectNode({x:Qr.Opt(ei.Range()),y:Qr.Opt(ei.Range()),z:Qr.Opt(ei.Range()),absolute:Qr.Opt(ei.Range()),horizontal:Qr.Opt(ei.Range())},{context:"distance"})),e.register("entity_predicate",Qr.ObjectNode({type:Qr.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Qr.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Qr.Opt(i({validator:"team"})),location:Qr.Opt(r("location_predicate")),distance:Qr.Opt(r("distance_predicate")),flags:Qr.Opt(Qr.ObjectNode({is_on_fire:Qr.Opt(Qr.BooleanNode()),is_sneaking:Qr.Opt(Qr.BooleanNode()),is_sprinting:Qr.Opt(Qr.BooleanNode()),is_swimming:Qr.Opt(Qr.BooleanNode()),is_baby:Qr.Opt(Qr.BooleanNode())})),equipment:Qr.Opt(Qr.MapNode(i({enum:"slot"}),r("item_predicate"))),vehicle:Qr.Opt(r("entity_predicate")),targeted_entity:Qr.Opt(r("entity_predicate")),player:Qr.Opt(r("player_predicate")),fishing_hook:Qr.Opt(Qr.ObjectNode({in_open_water:Qr.Opt(Qr.BooleanNode())})),effects:Qr.Opt(Qr.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Qr.ObjectNode({is_explosion:Qr.Opt(Qr.BooleanNode()),is_fire:Qr.Opt(Qr.BooleanNode()),is_magic:Qr.Opt(Qr.BooleanNode()),is_projectile:Qr.Opt(Qr.BooleanNode()),is_lightning:Qr.Opt(Qr.BooleanNode()),bypasses_armor:Qr.Opt(Qr.BooleanNode()),bypasses_invulnerability:Qr.Opt(Qr.BooleanNode()),bypasses_magic:Qr.Opt(Qr.BooleanNode()),source_entity:Qr.Opt(r("entity_predicate")),direct_entity:Qr.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Qr.ObjectNode({dealt:Qr.Opt(ei.Range()),taken:Qr.Opt(ei.Range()),blocked:Qr.Opt(Qr.BooleanNode()),source_entity:Qr.Opt(r("entity_predicate")),type:Qr.Opt(r("damage_source_predicate"))},{context:"damage"}))};var ti={};Object.defineProperty(ti,"__esModule",{value:!0}),ti.initRecipeSchemas=void 0;const ri=Le;ti.initRecipeSchemas=function(e,t){const r=ri.Reference.bind(void 0,e),i=ri.StringNode.bind(void 0,t);e.register("recipe",ri.Mod(ri.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[ri.Switch]:[{push:"type"}],[ri.Case]:{"minecraft:crafting_shaped":{group:ri.Opt(i({enum:"recipe_group",additional:!0})),pattern:ri.ListNode(i()),key:ri.MapNode(i(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:ri.Opt(i()),ingredients:ri.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:ri.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ri.Opt(ri.NumberNode()),cookingtime:ri.Opt(ri.Mod(ri.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:ri.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ri.Opt(ri.NumberNode()),cookingtime:ri.Opt(ri.Mod(ri.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:ri.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ri.Opt(ri.NumberNode()),cookingtime:ri.Opt(ri.Mod(ri.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:ri.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:ri.Opt(ri.NumberNode()),cookingtime:ri.Opt(ri.Mod(ri.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:ri.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:ri.NumberNode({integer:!0})},"minecraft:smithing":{group:ri.Opt(i()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",ri.Mod(ri.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:ri.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",ri.Mod(ri.ObjectNode({item:ri.Opt(i({validator:"resource",params:{pool:"item"}})),tag:ri.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",ri.Mod(ri.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:ri.Opt(ri.Mod(ri.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var ii={};Object.defineProperty(ii,"__esModule",{value:!0}),ii.initTagsSchemas=void 0;const ni=Le;ii.initTagsSchemas=function(e,t){const r=ni.StringNode.bind(void 0,t),i=e=>ni.Mod(ni.ObjectNode({replace:ni.Opt(ni.BooleanNode()),values:ni.ListNode(ni.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:ni.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:ni.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("item_tag",i("item"))};var oi={};Object.defineProperty(oi,"__esModule",{value:!0}),oi.initTextComponentSchemas=void 0;const ai=Le;oi.initTextComponentSchemas=function(e,t){const r=ai.Reference.bind(void 0,e),i=ai.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",ai.Mod(ai.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:n},{type:"number",node:ai.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ai.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:ai.Opt(i()),font:ai.Opt(i()),bold:ai.Opt(ai.BooleanNode()),italic:ai.Opt(ai.BooleanNode()),underlined:ai.Opt(ai.BooleanNode()),strikethrough:ai.Opt(ai.BooleanNode()),obfuscated:ai.Opt(ai.BooleanNode()),insertion:ai.Opt(i()),clickEvent:ai.Opt(ai.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ai.Switch]:[{push:"action"}],[ai.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ai.Opt(ai.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[ai.Switch]:[{push:"action"}],[ai.Case]:{show_text:{value:ai.Opt(r("text_component")),contents:ai.Opt(r("text_component"))},show_item:{value:ai.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:ai.Opt(ai.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:ai.Opt(ai.NumberNode({integer:!0})),tag:ai.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:ai.Opt(ai.ObjectNode({name:ai.Opt(i()),type:ai.Opt(i()),id:ai.Opt(i())})),contents:ai.Opt(ai.Mod(ai.ObjectNode({name:ai.Opt(r("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:ai.Opt(r("text_component_list"))};e.register("text_component_object",ai.Mod(ai.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ai.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ai.ObjectNode(s({translate:i(),with:ai.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ai.ObjectNode(s({score:ai.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:ai.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ai.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ai.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ai.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:ai.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ai.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ai.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:ai.Opt(ai.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ai.Mod(ai.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var si={},ci={};Object.defineProperty(ci,"__esModule",{value:!0}),ci.initBiomeSchemas=void 0;const li=Le;ci.initBiomeSchemas=function(e,t){const r=li.StringNode.bind(void 0,t);e.register("biome",li.Mod(li.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:li.NumberNode(),scale:li.NumberNode(),temperature:li.NumberNode(),downfall:li.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:li.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:li.Opt(li.BooleanNode()),creature_spawn_probability:li.Opt(li.NumberNode({min:0,max:1})),effects:li.ObjectNode({sky_color:li.NumberNode({color:!0}),fog_color:li.NumberNode({color:!0}),water_color:li.NumberNode({color:!0}),water_fog_color:li.NumberNode({color:!0}),grass_color:li.Opt(li.NumberNode({color:!0})),foliage_color:li.Opt(li.NumberNode({color:!0})),grass_color_modifier:li.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:li.Opt(r()),mood_sound:li.Opt(li.ObjectNode({sound:r(),tick_delay:li.NumberNode({integer:!0}),block_search_extent:li.NumberNode({integer:!0}),offset:li.NumberNode()})),additions_sound:li.Opt(li.ObjectNode({sound:r(),tick_chance:li.NumberNode({min:0,max:1})})),music:li.Opt(li.ObjectNode({sound:r(),min_delay:li.NumberNode({integer:!0,min:0}),max_delay:li.NumberNode({integer:!0,min:0}),replace_current_music:li.BooleanNode()})),particle:li.Opt(li.ObjectNode({options:li.ObjectNode({type:r()}),probability:li.NumberNode({min:0,max:1})}))}),starts:li.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:li.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),li.Mod(li.ListNode(li.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:li.NumberNode({integer:!0}),minCount:li.NumberNode({integer:!0}),maxCount:li.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:li.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),li.Mod(li.ObjectNode({energy_budget:li.NumberNode(),charge:li.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:li.MapNode(r({enum:["air","liquid"]}),li.Mod(li.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:li.ListNode(li.Mod(li.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var di={};Object.defineProperty(di,"__esModule",{value:!0}),di.initCarverSchemas=void 0;const ui=Le;di.initCarverSchemas=function(e,t){const r=ui.StringNode.bind(void 0,t);e.register("configured_carver",ui.Mod(ui.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:ui.ObjectNode({probability:ui.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var pi={};Object.defineProperty(pi,"__esModule",{value:!0}),pi.initDecoratorSchemas=void 0;const mi=Le,_i=Sr;pi.initDecoratorSchemas=function(e,t){const r=mi.Reference.bind(void 0,e),i=mi.StringNode.bind(void 0,t),n={maximum:mi.NumberNode({integer:!0}),bottom_offset:mi.NumberNode({integer:!0}),top_offset:mi.NumberNode({integer:!0})},o={chance:mi.NumberNode({integer:!0,min:0})},a={count:_i.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",mi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/decorator"}}),config:mi.ObjectNode({[mi.Switch]:["pop",{push:"type"}],[mi.Case]:{"minecraft:carving_mask":{step:i({enum:"generation_step"}),probability:mi.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:mi.NumberNode({integer:!0}),extra_count:mi.NumberNode({integer:!0}),extra_chance:mi.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:mi.NumberNode(),below_noise:mi.NumberNode({integer:!0}),above_noise:mi.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:mi.NumberNode({integer:!0}),noise_factor:mi.NumberNode(),noise_offset:mi.Opt(mi.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:mi.NumberNode({integer:!0}),spread:mi.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":n,"minecraft:range_biased":n,"minecraft:range_very_biased":n,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var hi={},fi={};Object.defineProperty(fi,"__esModule",{value:!0}),fi.initProcessorListSchemas=void 0;const gi=Le;fi.initProcessorListSchemas=function(e,t){const r=gi.Reference.bind(void 0,e),i=gi.StringNode.bind(void 0,t);e.register("processor_list",gi.Mod(gi.ObjectNode({processors:gi.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",gi.Mod(gi.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[gi.Switch]:[{push:"processor_type"}],[gi.Case]:{"minecraft:block_age":{mossiness:gi.NumberNode()},"minecraft:block_ignore":{blocks:gi.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:gi.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:gi.NumberNode({integer:!0})},"minecraft:rule":{rules:gi.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",gi.Mod(gi.ObjectNode({position_predicate:gi.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:gi.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:gi.NumberNode({min:0,max:255,integer:!0}),max_dist:gi.NumberNode({min:0,max:255,integer:!0}),min_chance:gi.NumberNode({min:0,max:1}),max_chance:gi.NumberNode({min:0,max:1})};e.register("pos_rule_test",gi.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[gi.Switch]:[{push:"predicate_type"}],[gi.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},n),"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",gi.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[gi.Switch]:[{push:"predicate_type"}],[gi.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:gi.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:gi.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(hi,"__esModule",{value:!0}),hi.initFeatureSchemas=void 0;const bi=Le,yi=Sr;hi.initFeatureSchemas=function(e,t){const r=bi.Reference.bind(void 0,e),i=bi.StringNode.bind(void 0,t),n={can_replace:bi.BooleanNode(),project:bi.BooleanNode(),need_water:bi.BooleanNode(),xspread:bi.NumberNode({integer:!0}),yspread:bi.NumberNode({integer:!0}),zspread:bi.NumberNode({integer:!0}),tries:bi.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:bi.ListNode(r("block_state")),blacklist:bi.ListNode(r("block_state"))},o={state:r("block_state"),radius:yi.UniformInt({min:0,max:4,maxSpread:4}),half_height:bi.NumberNode({integer:!0,min:0,max:4}),targets:bi.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:bi.Opt(bi.NumberNode({integer:!0}))},s={state:r("block_state"),size:bi.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:yi.UniformInt({min:-10,max:128,maxSpread:128})},l=bi.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",bi.Mod(bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:bi.ObjectNode({[bi.Switch]:["pop",{push:"type"}],[bi.Case]:{"minecraft:bamboo":{probability:bi.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:yi.UniformInt({min:0,max:2,maxSpread:1}),height:yi.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:yi.UniformInt({min:0,max:8,maxSpread:8}),rim_size:yi.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:r("block_state"),target:r("block_state")},"minecraft:end_gateway":{exact:bi.BooleanNode(),exit:bi.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:bi.Opt(bi.BooleanNode()),crystal_beam_target:bi.Opt(r("block_pos")),spikes:bi.ListNode(bi.ObjectNode({centerX:bi.Opt(bi.NumberNode({integer:!0})),centerZ:bi.Opt(bi.NumberNode({integer:!0})),radius:bi.Opt(bi.NumberNode({integer:!0})),height:bi.Opt(bi.NumberNode({integer:!0})),guarded:bi.Opt(bi.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:bi.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":n,"minecraft:forest_rock":{state:r("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:bi.Opt(bi.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:yi.UniformInt()},"minecraft:no_bonemeal_flower":n,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":n,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:bi.ListNode(bi.ObjectNode({chance:bi.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:bi.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:bi.ListNode(r("block_state")),place_in:bi.ListNode(r("block_state")),place_under:bi.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:bi.ListNode(l)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:bi.NumberNode({integer:!0}),hole_count:bi.NumberNode({integer:!0}),requires_block_below:bi.BooleanNode(),valid_blocks:bi.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:bi.NumberNode({integer:!0}),ignore_vines:bi.BooleanNode(),heightmap:i({enum:"heightmap_type"}),minimum_size:r("feature_size"),trunk_provider:r("block_state_provider"),leaves_provider:r("block_state_provider"),trunk_placer:bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:bi.NumberNode({integer:!0,min:0,max:32}),height_rand_a:bi.NumberNode({integer:!0,min:0,max:24}),height_rand_b:bi.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:yi.UniformInt({min:0,max:8,maxSpread:8}),offset:yi.UniformInt({min:0,max:8,maxSpread:8}),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:blob_foliage_placer":{height:bi.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:bi.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:bi.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:bi.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:yi.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:yi.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:yi.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:bi.ListNode(bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:bi.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:bi.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",bi.Mod(bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:bi.Opt(bi.NumberNode({min:0,max:80})),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:two_layers_feature_size":{limit:bi.Opt(bi.NumberNode({integer:!0,min:0,max:81})),lower_size:bi.Opt(bi.NumberNode({integer:!0,min:0,max:16})),upper_size:bi.Opt(bi.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:bi.Opt(bi.NumberNode({integer:!0,min:0,max:80})),upper_limit:bi.Opt(bi.NumberNode({integer:!0,min:0,max:80})),lower_size:bi.Opt(bi.NumberNode({integer:!0,min:0,max:16})),middle_size:bi.Opt(bi.NumberNode({integer:!0,min:0,max:16})),upper_size:bi.Opt(bi.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",bi.Mod(bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:bi.ListNode(bi.Mod(bi.ObjectNode({weight:bi.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",bi.Mod(bi.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[bi.Switch]:[{push:"type"}],[bi.Case]:{"minecraft:column_placer":{min_size:bi.NumberNode({integer:!0}),extra_size:bi.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var vi={};Object.defineProperty(vi,"__esModule",{value:!0}),vi.initNoiseSettingsSchemas=void 0;const Ni=Le,xi=Sr;vi.initNoiseSettingsSchemas=function(e,t){const r=Ni.Reference.bind(void 0,e),i=Ni.StringNode.bind(void 0,t);e.register("noise_settings",Ni.Mod(Ni.ObjectNode({name:Ni.Mod(i({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Ni.NumberNode({integer:!0}),bedrock_floor_position:Ni.NumberNode({integer:!0}),sea_level:Ni.NumberNode({integer:!0}),disable_mob_generation:Ni.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Ni.ObjectNode({height:Ni.NumberNode({integer:!0}),density_factor:Ni.NumberNode(),density_offset:Ni.NumberNode(),size_horizontal:Ni.NumberNode({integer:!0}),size_vertical:Ni.NumberNode({integer:!0}),simplex_surface_noise:Ni.BooleanNode(),random_density_offset:Ni.Opt(Ni.BooleanNode()),island_noise_override:Ni.Opt(Ni.BooleanNode()),amplified:Ni.Opt(Ni.BooleanNode()),sampling:Ni.ObjectNode({xz_scale:Ni.NumberNode(),y_scale:Ni.NumberNode(),xz_factor:Ni.NumberNode(),y_factor:Ni.NumberNode()}),bottom_slide:Ni.ObjectNode({target:Ni.NumberNode({integer:!0}),size:Ni.NumberNode({integer:!0}),offset:Ni.NumberNode({integer:!0})}),top_slide:Ni.ObjectNode({target:Ni.NumberNode({integer:!0}),size:Ni.NumberNode({integer:!0}),offset:Ni.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>xi.DefaultNoiseSettings})),e.register("generator_structures",Ni.ObjectNode({stronghold:Ni.Opt(Ni.ObjectNode({distance:Ni.NumberNode({integer:!0,min:0,max:1023}),spread:Ni.NumberNode({integer:!0,min:0,max:1023}),count:Ni.NumberNode({integer:!0,min:1,max:4095})})),structures:Ni.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Ni.Mod(Ni.ObjectNode({spacing:Ni.NumberNode({integer:!0,min:0,max:4096}),separation:Ni.Mod(Ni.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,i,n)=>(t.pop().push("spacing").get()<=r&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,r,i,n))}))),salt:Ni.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Ni.Mod(Ni.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:Ni.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var wi={};Object.defineProperty(wi,"__esModule",{value:!0}),wi.initStructureFeatureSchemas=void 0;const ki=Le;wi.initStructureFeatureSchemas=function(e,t){const r=ki.StringNode.bind(void 0,t),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ki.NumberNode({integer:!0})};e.register("configured_structure_feature",ki.Mod(ki.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ki.ObjectNode({[ki.Switch]:["pop",{push:"type"}],[ki.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:ki.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ki.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ki.NumberNode({min:0,max:1}),cluster_probability:ki.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ki.Opt(ki.BooleanNode())},"minecraft:village":i}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initSurfaceBuilderSchemas=void 0;const Si=Le;Oi.initSurfaceBuilderSchemas=function(e,t){const r=Si.StringNode.bind(void 0,t),i=Si.Reference.bind(void 0,e);e.register("configured_surface_builder",Si.Mod(Si.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Si.ObjectNode({top_material:i("block_state"),under_material:i("block_state"),underwater_material:i("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Di={};Object.defineProperty(Di,"__esModule",{value:!0}),Di.initTemplatePoolSchemas=void 0;const Ai=Le;Di.initTemplatePoolSchemas=function(e,t){const r=Ai.Reference.bind(void 0,e),i=Ai.StringNode.bind(void 0,t),n=Ai.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Ai.Mod(Ai.ObjectNode({name:i(),fallback:i(),elements:Ai.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Ai.Mod(Ai.ObjectNode({weight:Ai.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Ai.Mod(Ai.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[Ai.Switch]:[{push:"element_type"}],[Ai.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:Ai.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:n}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(si,"__esModule",{value:!0}),si.initWorldgenSchemas=void 0;const Ci=ci,Ei=di,ji=pi,Fi=hi,Bi=vi,Mi=fi,Ti=wi,Li=Oi,Pi=Di;si.initWorldgenSchemas=function(e,t){Ci.initBiomeSchemas(e,t),Ei.initCarverSchemas(e,t),ji.initDecoratorSchemas(e,t),Fi.initFeatureSchemas(e,t),Bi.initNoiseSettingsSchemas(e,t),Mi.initProcessorListSchemas(e,t),Ti.initStructureFeatureSchemas(e,t),Li.initSurfaceBuilderSchemas(e,t),Pi.initTemplatePoolSchemas(e,t)};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initWorldSettingsSchemas=void 0;const Ri=Le;Ii.initWorldSettingsSchemas=function(e,t){const r=Ri.Reference.bind(void 0,e),i=Ri.StringNode.bind(void 0,t);e.register("world_settings",Ri.Mod(Ri.ObjectNode({generate_features:Ri.BooleanNode(),bonus_chest:Ri.BooleanNode(),seed:Ri.NumberNode({integer:!0}),dimensions:Ri.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(kr,"__esModule",{value:!0}),kr.initSchemas=void 0;const zi=Or,Ui=Cr,$i=Sr,qi=Lr,Xi=Rr,Ji=$r,Hi=Jr,Wi=Kr,Zi=Vr,Gi=ti,Ki=ii,Yi=oi,Vi=si,Qi=Ii;kr.initSchemas=function(e,t){$i.initCommonSchemas(e,t),zi.initAdvancementSchemas(e,t),Ui.initAssetsSchemas(e,t),qi.initConditionSchemas(e,t),Ji.initDimensionTypeSchemas(e,t),Xi.initDimensionSchemas(e,t),Hi.initLootTableSchemas(e,t),Wi.initPackMcmetaSchemas(e,t),Zi.initPredicatesSchemas(e,t),Gi.initRecipeSchemas(e,t),Ki.initTagsSchemas(e,t),Yi.initTextComponentSchemas(e,t),Vi.initWorldgenSchemas(e,t),Qi.initWorldSettingsSchemas(e,t)};var en=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),tn=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),rn=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&en(t,e,r);return tn(t,e),t};Object.defineProperty(xr,"__esModule",{value:!0});var nn=xr.getSchemas=xr.getCollections=void 0;const on=Le,an=wr,sn=kr;var cn=xr.lootContext=rn(Hr);var ln=xr.getCollections=function(){const e=new on.CollectionRegistry;return an.initCollections(e),e};nn=xr.getSchemas=function(e){const t=new on.SchemaRegistry;return sn.initSchemas(t,e),t};var dn=Object.freeze(Object.assign(Object.create(null),xr,{[Symbol.toStringTag]:"Module",get getSchemas(){return nn},get getCollections(){return ln},lootContext:cn,default:xr})),un={},pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initCollections=void 0,pn.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var mn={},_n={};Object.defineProperty(_n,"__esModule",{value:!0}),_n.initAdvancementSchemas=void 0;const hn=Le;_n.initAdvancementSchemas=function(e,t){const r=hn.Reference.bind(void 0,e),i=hn.StringNode.bind(void 0,t),n=hn.ChoiceNode([{type:"object",node:hn.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:hn.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",hn.Mod(hn.ObjectNode({display:hn.Opt(hn.Mod(hn.ObjectNode({icon:hn.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:hn.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:hn.Opt(i()),frame:hn.Opt(i({enum:["task","challenge","goal"]})),show_toast:hn.Opt(hn.BooleanNode()),announce_to_chat:hn.Opt(hn.BooleanNode()),hidden:hn.Opt(hn.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:hn.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:hn.MapNode(i(),r("advancement_criteria")),requirements:hn.Opt(hn.ListNode(hn.ListNode(i()))),rewards:hn.Opt(hn.ObjectNode({function:hn.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:hn.Opt(hn.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:hn.Opt(hn.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:hn.Opt(hn.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",hn.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:hn.Opt(hn.ObjectNode({player:hn.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[hn.Switch]:["pop",{push:"trigger"}],[hn.Case]:{"minecraft:bee_nest_destroyed":{block:hn.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:hn.Opt(hn.NumberNode({integer:!0})),item:hn.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:hn.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:hn.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:hn.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:hn.Opt(hn.ListNode(n))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:hn.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:hn.Opt(hn.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),hn.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:hn.Opt(n)},"minecraft:enter_block":{block:hn.Opt(i({validator:"resource",params:{pool:"block"}})),state:hn.Opt(hn.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:hn.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:hn.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:hn.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:hn.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:hn.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:hn.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:hn.Opt(hn.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:hn.Opt(hn.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:hn.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:hn.Opt(r("item_predicate")),location:hn.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:hn.Opt(hn.ListNode(n))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:n,bystander:n},"minecraft:location":{location:hn.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:hn.Opt(r("location_predicate")),exited:hn.Opt(r("location_predicate"))},"minecraft:placed_block":{block:hn.Opt(i({validator:"resource",params:{pool:"block"}})),state:hn.Opt(hn.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:hn.Opt(r("item_predicate")),location:hn.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:hn.Opt(r("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:hn.Opt(r("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:hn.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:hn.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:hn.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:hn.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:hn.Opt(r("entity_predicate")),item:hn.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:hn.Opt(r("item_predicate"))},"minecraft:using_item":{item:hn.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:hn.Opt(r("entity_predicate")),item:hn.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var fn={},gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.initModelSchemas=void 0;const bn=Le;gn.initModelSchemas=function(e,t){bn.Reference.bind(void 0,e);const r=bn.StringNode.bind(void 0,t),i=(e,t,r)=>bn.ListNode(bn.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),n=bn.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",bn.Mod(bn.ObjectNode({parent:bn.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:bn.Opt(bn.BooleanNode()),gui_light:bn.Opt(r({enum:"gui_light"})),textures:bn.Opt(bn.MapNode(r(),n)),elements:bn.Opt(bn.ListNode(bn.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:bn.Opt(bn.ObjectNode({origin:i(3),axis:r({enum:"axis"}),angle:bn.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:bn.Opt(bn.BooleanNode())})),shade:bn.Opt(bn.BooleanNode()),faces:bn.MapNode(r({enum:"direction"}),bn.ObjectNode({texture:n,uv:bn.Opt(i(4)),cullface:bn.Opt(r({enum:"direction"})),rotation:bn.Opt(bn.NumberNode({integer:!0})),tintindex:bn.Opt(bn.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:bn.Opt(bn.MapNode(r({enum:"display_position"}),bn.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:bn.Opt(bn.ListNode(bn.ObjectNode({predicate:bn.MapNode(r({enum:"item_model_predicates"}),bn.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var yn={};Object.defineProperty(yn,"__esModule",{value:!0}),yn.initBlockDefinitionSchemas=void 0;const vn=Le;yn.initBlockDefinitionSchemas=function(e,t){const r=vn.Reference.bind(void 0,e),i=vn.StringNode.bind(void 0,t);e.register("block_definition",vn.Mod(vn.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:vn.ObjectNode({variants:vn.MapNode(i(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:vn.ObjectNode({multipart:vn.ListNode(vn.ObjectNode({when:vn.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const n={model:i({validator:"resource",params:{pool:"$model"}}),x:vn.Opt(vn.NumberEnum({integer:!0,values:[0,90,180,270]})),y:vn.Opt(vn.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:vn.Opt(vn.BooleanNode())};e.register("model_variant",vn.ChoiceNode([{type:"object",node:vn.ObjectNode(n),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:vn.ListNode(vn.ObjectNode(c(s({},n),{weight:vn.Opt(vn.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",vn.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:vn.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:vn.ObjectNode({OR:vn.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(fn,"__esModule",{value:!0}),fn.initAssetsSchemas=void 0;const Nn=gn,xn=yn;fn.initAssetsSchemas=function(e,t){xn.initBlockDefinitionSchemas(e,t),Nn.initModelSchemas(e,t)};var wn={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Le;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,i){const n=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));r.register("int_bounds",a(!0)),r.register("float_bounds",a()),r.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,i,o,a,c,l)=>{let d={};a&&Object.keys(l[a]).forEach((e=>{d[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const u=t.ObjectNode(s({type:t.Mod(t.Opt(n({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},d),{context:c,disableSwitchContext:!0}),p=[{type:r,node:l[o][i]}];return a&&p.push({type:"object",priority:-1,node:u}),Object.keys(l).forEach((e=>{p.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:u,change:t=>({type:e})})})),t.ChoiceNode(p,{context:c,choiceContext:`${c}.type`})};r.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:n({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(n({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(n({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),r.register("int_provider",e.IntProvider()),r.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,i,n;return{[e]:null!==(n=null!==(i=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==n?n:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(n({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=n({enum:"copy_source"}),a=n({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(n({enum:"map_feature"})),decoration:t.Opt(n({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(n({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return i.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(wn);var kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.initConditionSchemas=void 0;const On=Le,Sn=wn;kn.initConditionSchemas=function(e,t){const r=On.Reference.bind(void 0,e),i=On.StringNode.bind(void 0,t);e.register("predicate",On.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",On.Mod(On.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[On.Switch]:[{push:"condition"}],[On.Case]:Sn.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Dn={};Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initDimensionSchemas=void 0;const An=Le,Cn=wn;Dn.initDimensionSchemas=function(e,t){const r=An.Reference.bind(void 0,e),i=An.StringNode.bind(void 0,t),n=e=>An.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",An.Mod(An.ObjectNode({type:Cn.DimensionTypePresets(r("dimension_type")),generator:An.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[An.Switch]:[{push:"type"}],[An.Case]:{"minecraft:noise":{seed:An.NumberNode({integer:!0}),settings:Cn.NoiseSettingsPresets(r("noise_settings")),biome_source:An.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[An.Switch]:[{push:"type"}],[An.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:An.NumberNode({integer:!0}),preset:An.Opt(i({enum:["nether"]})),altitude_noise:n(r("generator_biome_noise")),temperature_noise:n(r("generator_biome_noise")),humidity_noise:n(r("generator_biome_noise")),weirdness_noise:n(r("generator_biome_noise")),biomes:n(An.Mod(An.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:An.Opt(An.NumberNode({integer:!0,min:0,max:62})),biomes:An.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:An.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:An.NumberNode({integer:!0}),large_biomes:An.Opt(An.BooleanNode()),legacy_biome_init_layer:An.Opt(An.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:An.ObjectNode({biome:An.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:An.Opt(An.BooleanNode()),features:An.Opt(An.BooleanNode()),layers:An.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",An.Mod(An.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:An.ObjectNode({altitude:An.NumberNode(),temperature:An.NumberNode(),humidity:An.NumberNode(),weirdness:An.NumberNode(),offset:An.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",An.Mod(An.ObjectNode({firstOctave:An.NumberNode({integer:!0}),amplitudes:An.ListNode(An.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var En={};Object.defineProperty(En,"__esModule",{value:!0}),En.initDimensionTypeSchemas=void 0;const jn=Le,Fn=wn;En.initDimensionTypeSchemas=function(e,t){const r=jn.StringNode.bind(void 0,t);e.register("dimension_type",jn.Mod(jn.ObjectNode({name:jn.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:jn.BooleanNode(),natural:jn.BooleanNode(),piglin_safe:jn.BooleanNode(),respawn_anchor_works:jn.BooleanNode(),bed_works:jn.BooleanNode(),has_raids:jn.BooleanNode(),has_skylight:jn.BooleanNode(),has_ceiling:jn.BooleanNode(),coordinate_scale:jn.NumberNode({min:1e-5,max:3e7}),ambient_light:jn.NumberNode(),fixed_time:jn.Opt(jn.NumberNode({integer:!0})),logical_height:jn.NumberNode({integer:!0,min:0,max:4096}),effects:jn.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:jn.NumberNode({integer:!0,min:-2048,max:2047}),height:jn.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Fn.DefaultDimensionType,validate:(t,r,i,n)=>((null==(r=e.validate(t,r,i,n))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&i.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Bn={};Object.defineProperty(Bn,"__esModule",{value:!0}),Bn.initItemModifierSchemas=void 0;const Mn=Le,Tn=wn;Bn.initItemModifierSchemas=function(e,t){const r=Mn.Reference.bind(void 0,e),i=Mn.StringNode.bind(void 0,t);e.register("item_modifier",Mn.ObjectOrList(r("function"),{choiceContext:"function"}));const n={conditions:Mn.Opt(Mn.ListNode(r("condition")))};e.register("function",Mn.Mod(Mn.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[Mn.Switch]:[{push:"function"}],[Mn.Case]:Tn.FunctionCases(n)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ln={},Pn={};Object.defineProperty(Pn,"__esModule",{value:!0}),Pn.LootFunctions=Pn.LootConditions=Pn.LootCopySources=Pn.LootEntitySources=Pn.LootTableTypes=void 0,Pn.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Pn.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Pn.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Pn.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Pn.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ln,"__esModule",{value:!0}),Ln.initLootTableSchemas=void 0;const In=Le,Rn=Pn,zn=wn;Ln.initLootTableSchemas=function(e,t){const r=In.Reference.bind(void 0,e),i=In.StringNode.bind(void 0,t),n={conditions:In.Opt(In.ListNode(r("loot_condition")))},o=s({functions:In.Opt(In.ListNode(r("loot_function")))},n);function a(e,r,i){const n=[],o=i=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Rn.LootTableTypes){const e=[...a,...s];n.push({match:e=>e.getModel().get(new In.Path(["type"]))===t,node:i(o(e))})}return n.push({match:e=>!0,node:i(r)}),In.SwitchNode(n)}const c=a(Rn.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Rn.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Rn.LootEntitySources,"entity_source",(e=>i({enum:e}))),u=a(Rn.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",In.Mod(In.ObjectNode({type:In.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:In.Opt(In.ListNode(In.Mod(In.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:In.Opt(r("number_provider")),entries:In.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:In.Opt(In.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",In.Mod(In.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:In.Opt(In.Mod(In.NumberNode({integer:!0,min:1}),p)),quality:In.Opt(In.Mod(In.NumberNode({integer:!0}),p)),[In.Switch]:[{push:"type"}],[In.Case]:{"minecraft:alternatives":s({children:In.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:In.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:In.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:In.Opt(In.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",In.Mod(In.ObjectNode({function:l,[In.Switch]:[{push:"function"}],[In.Case]:zn.FunctionCases(n,u,d)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",In.Mod(In.ObjectNode({condition:c,[In.Switch]:[{push:"condition"}],[In.Case]:zn.ConditionCases(d)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",In.Mod(In.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:r("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:In.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Un={};Object.defineProperty(Un,"__esModule",{value:!0}),Un.initPackMcmetaSchemas=void 0;const $n=Le;Un.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",$n.Mod($n.ObjectNode({pack:$n.Mod($n.ObjectNode({pack_format:$n.Mod($n.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:$n.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var qn={};Object.defineProperty(qn,"__esModule",{value:!0}),qn.initPredicatesSchemas=void 0;const Xn=Le;qn.initPredicatesSchemas=function(e,t){const r=Xn.Reference.bind(void 0,e),i=Xn.StringNode.bind(void 0,t),n=Xn.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Xn.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Xn.ObjectNode({min:Xn.Opt(Xn.NumberNode({integer:!0})),max:Xn.Opt(Xn.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Xn.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Xn.ObjectNode({items:Xn.Opt(Xn.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:Xn.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:Xn.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Xn.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Xn.Opt(Xn.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Xn.ObjectNode({enchantment:Xn.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Xn.ObjectNode({blocks:Xn.Opt(Xn.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:Xn.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Xn.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Xn.Opt(Xn.MapNode(i(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Xn.ObjectNode({fluid:Xn.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Xn.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Xn.Opt(Xn.MapNode(i(),n))},{context:"fluid"})),e.register("location_predicate",Xn.ObjectNode({position:Xn.Opt(Xn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:Xn.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Xn.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Xn.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Xn.Opt(Xn.ObjectNode({light:r("int_bounds")})),smokey:Xn.Opt(Xn.BooleanNode()),block:Xn.Opt(r("block_predicate")),fluid:Xn.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Xn.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:r("int_bounds"),[Xn.Switch]:[{push:"type"}],[Xn.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Xn.ObjectNode({gamemode:Xn.Opt(i({enum:"gamemode"})),level:r("int_bounds"),advancements:Xn.Opt(Xn.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Xn.ChoiceNode([{type:"boolean",node:Xn.BooleanNode(),change:e=>!0},{type:"object",node:Xn.MapNode(i(),Xn.BooleanNode())}]))),recipes:Xn.Opt(Xn.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Xn.BooleanNode())),stats:Xn.Opt(Xn.ListNode(r("statistic_predicate"))),looking_at:Xn.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Xn.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:Xn.Opt(Xn.BooleanNode()),visible:Xn.Opt(Xn.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Xn.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",Xn.ObjectNode({type:Xn.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Xn.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Xn.Opt(i({validator:"team"})),location:Xn.Opt(r("location_predicate")),stepping_on:Xn.Opt(r("location_predicate")),distance:Xn.Opt(r("distance_predicate")),flags:Xn.Opt(Xn.ObjectNode({is_on_fire:Xn.Opt(Xn.BooleanNode()),is_sneaking:Xn.Opt(Xn.BooleanNode()),is_sprinting:Xn.Opt(Xn.BooleanNode()),is_swimming:Xn.Opt(Xn.BooleanNode()),is_baby:Xn.Opt(Xn.BooleanNode())})),equipment:Xn.Opt(Xn.MapNode(i({enum:"slot"}),r("item_predicate"))),player:Xn.Opt(r("player_predicate")),vehicle:Xn.Opt(r("entity_predicate")),passenger:Xn.Opt(r("entity_predicate")),targeted_entity:Xn.Opt(r("entity_predicate")),lightning_bolt:Xn.Opt(Xn.ObjectNode({blocks_set_on_fire:Xn.Opt(r("int_bounds")),entity_struck:Xn.Opt(r("entity_predicate"))})),fishing_hook:Xn.Opt(Xn.ObjectNode({in_open_water:Xn.Opt(Xn.BooleanNode())})),effects:Xn.Opt(Xn.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Xn.ObjectNode({is_explosion:Xn.Opt(Xn.BooleanNode()),is_fire:Xn.Opt(Xn.BooleanNode()),is_magic:Xn.Opt(Xn.BooleanNode()),is_projectile:Xn.Opt(Xn.BooleanNode()),is_lightning:Xn.Opt(Xn.BooleanNode()),bypasses_armor:Xn.Opt(Xn.BooleanNode()),bypasses_invulnerability:Xn.Opt(Xn.BooleanNode()),bypasses_magic:Xn.Opt(Xn.BooleanNode()),source_entity:Xn.Opt(r("entity_predicate")),direct_entity:Xn.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Xn.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:Xn.Opt(Xn.BooleanNode()),source_entity:Xn.Opt(r("entity_predicate")),type:Xn.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0}),Jn.initRecipeSchemas=void 0;const Hn=Le;Jn.initRecipeSchemas=function(e,t){const r=Hn.Reference.bind(void 0,e),i=Hn.StringNode.bind(void 0,t);e.register("recipe",Hn.Mod(Hn.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Hn.Switch]:[{push:"type"}],[Hn.Case]:{"minecraft:crafting_shaped":{group:Hn.Opt(i({enum:"recipe_group",additional:!0})),pattern:Hn.ListNode(i()),key:Hn.MapNode(i(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Hn.Opt(i()),ingredients:Hn.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Hn.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Hn.Opt(Hn.NumberNode()),cookingtime:Hn.Opt(Hn.Mod(Hn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Hn.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Hn.Opt(Hn.NumberNode()),cookingtime:Hn.Opt(Hn.Mod(Hn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Hn.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Hn.Opt(Hn.NumberNode()),cookingtime:Hn.Opt(Hn.Mod(Hn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Hn.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Hn.Opt(Hn.NumberNode()),cookingtime:Hn.Opt(Hn.Mod(Hn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Hn.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Hn.NumberNode({integer:!0})},"minecraft:smithing":{group:Hn.Opt(i()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Hn.Mod(Hn.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Hn.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Hn.Mod(Hn.ObjectNode({item:Hn.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Hn.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Hn.Mod(Hn.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Hn.Opt(Hn.Mod(Hn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Wn={};Object.defineProperty(Wn,"__esModule",{value:!0}),Wn.initTagsSchemas=void 0;const Zn=Le;Wn.initTagsSchemas=function(e,t){const r=Zn.StringNode.bind(void 0,t),i=e=>Zn.Mod(Zn.ObjectNode({replace:Zn.Opt(Zn.BooleanNode()),values:Zn.ListNode(Zn.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Zn.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Zn.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item"))};var Gn={};Object.defineProperty(Gn,"__esModule",{value:!0}),Gn.initTextComponentSchemas=void 0;const Kn=Le;Gn.initTextComponentSchemas=function(e,t){const r=Kn.Reference.bind(void 0,e),i=Kn.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Kn.Mod(Kn.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:n},{type:"number",node:Kn.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Kn.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Kn.Opt(i()),font:Kn.Opt(i()),bold:Kn.Opt(Kn.BooleanNode()),italic:Kn.Opt(Kn.BooleanNode()),underlined:Kn.Opt(Kn.BooleanNode()),strikethrough:Kn.Opt(Kn.BooleanNode()),obfuscated:Kn.Opt(Kn.BooleanNode()),insertion:Kn.Opt(i()),clickEvent:Kn.Opt(Kn.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Kn.Switch]:[{push:"action"}],[Kn.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Kn.Opt(Kn.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[Kn.Switch]:[{push:"action"}],[Kn.Case]:{show_text:{value:Kn.Opt(r("text_component")),contents:Kn.Opt(r("text_component"))},show_item:{value:Kn.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Kn.Opt(Kn.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:Kn.Opt(Kn.NumberNode({integer:!0})),tag:Kn.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Kn.Opt(Kn.ObjectNode({name:Kn.Opt(i()),type:Kn.Opt(i()),id:Kn.Opt(i())})),contents:Kn.Opt(Kn.Mod(Kn.ObjectNode({name:Kn.Opt(r("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Kn.Opt(r("text_component_list"))};e.register("text_component_object",Kn.Mod(Kn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Kn.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Kn.ObjectNode(s({translate:i(),with:Kn.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Kn.ObjectNode(s({score:Kn.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:Kn.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Kn.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Kn.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Kn.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Kn.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:Kn.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Kn.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Kn.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:Kn.Opt(Kn.BooleanNode()),separator:Kn.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Kn.Mod(Kn.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Yn={},Vn={};Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.initBiomeSchemas=void 0;const Qn=Le;Vn.initBiomeSchemas=function(e,t){const r=Qn.StringNode.bind(void 0,t);e.register("biome",Qn.Mod(Qn.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Qn.NumberNode(),scale:Qn.NumberNode(),temperature:Qn.NumberNode(),downfall:Qn.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Qn.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Qn.Opt(Qn.BooleanNode()),creature_spawn_probability:Qn.Opt(Qn.NumberNode({min:0,max:1})),effects:Qn.ObjectNode({sky_color:Qn.NumberNode({color:!0}),fog_color:Qn.NumberNode({color:!0}),water_color:Qn.NumberNode({color:!0}),water_fog_color:Qn.NumberNode({color:!0}),grass_color:Qn.Opt(Qn.NumberNode({color:!0})),foliage_color:Qn.Opt(Qn.NumberNode({color:!0})),grass_color_modifier:Qn.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Qn.Opt(r()),mood_sound:Qn.Opt(Qn.ObjectNode({sound:r(),tick_delay:Qn.NumberNode({integer:!0}),block_search_extent:Qn.NumberNode({integer:!0}),offset:Qn.NumberNode()})),additions_sound:Qn.Opt(Qn.ObjectNode({sound:r(),tick_chance:Qn.NumberNode({min:0,max:1})})),music:Qn.Opt(Qn.ObjectNode({sound:r(),min_delay:Qn.NumberNode({integer:!0,min:0}),max_delay:Qn.NumberNode({integer:!0,min:0}),replace_current_music:Qn.BooleanNode()})),particle:Qn.Opt(Qn.ObjectNode({options:Qn.ObjectNode({type:r()}),probability:Qn.NumberNode({min:0,max:1})}))}),starts:Qn.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Qn.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Qn.Mod(Qn.ListNode(Qn.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Qn.NumberNode({integer:!0}),minCount:Qn.NumberNode({integer:!0}),maxCount:Qn.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Qn.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Qn.Mod(Qn.ObjectNode({energy_budget:Qn.NumberNode(),charge:Qn.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Qn.MapNode(r({enum:["air","liquid"]}),Qn.Mod(Qn.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Qn.ListNode(Qn.Mod(Qn.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initCarverSchemas=void 0;const to=Le,ro=wn;eo.initCarverSchemas=function(e,t){const r=to.Reference.bind(void 0,e),i=to.StringNode.bind(void 0,t),n={vertical_rotation:ro.FloatProvider(),shape:to.ObjectNode({distance_factor:ro.FloatProvider(),thickness:ro.FloatProvider(),width_smoothness:to.NumberNode({integer:!0,min:0}),horizontal_radius_factor:ro.FloatProvider(),vertical_radius_default_factor:to.NumberNode(),vertical_radius_center_factor:to.NumberNode()})},o={horizontal_radius_multiplier:ro.FloatProvider(),vertical_radius_multiplier:ro.FloatProvider(),floor_level:ro.FloatProvider({min:-1,max:1})};e.register("configured_carver",to.Mod(to.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:to.ObjectNode({probability:to.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:ro.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:to.BooleanNode(),debug_settings:to.Opt(to.ObjectNode({debug_mode:to.Opt(to.BooleanNode()),air_state:to.Opt(r("block_state")),water_state:to.Opt(r("block_state")),lava_state:to.Opt(r("block_state")),barrier_state:to.Opt(r("block_state"))})),[to.Switch]:["pop",{push:"type"}],[to.Case]:{"minecraft:canyon":n,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var io={};Object.defineProperty(io,"__esModule",{value:!0}),io.initDecoratorSchemas=void 0;const no=Le,oo=wn;io.initDecoratorSchemas=function(e,t){const r=no.Reference.bind(void 0,e),i=no.StringNode.bind(void 0,t),n={count:oo.IntProvider({min:0,max:256})};e.register("configured_decorator",no.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/decorator"}}),config:no.ObjectNode({[no.Switch]:["pop",{push:"type"}],[no.Case]:{"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:cave_surface":{surface:i({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:no.NumberNode({integer:!0})},"minecraft:chance":{chance:no.NumberNode({integer:!0,min:0})},"minecraft:count":n,"minecraft:count_extra":{count:no.NumberNode({integer:!0,min:0}),extra_count:no.NumberNode({integer:!0,min:0}),extra_chance:no.NumberNode({min:0,max:1})},"minecraft:count_multilayer":n,"minecraft:count_noise":{noise_level:no.NumberNode(),below_noise:no.NumberNode({integer:!0}),above_noise:no.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:no.NumberNode({integer:!0}),noise_factor:no.NumberNode(),noise_offset:no.Opt(no.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:i({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:no.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:no.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ao={},so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initProcessorListSchemas=so.Processors=void 0;const co=Le;so.initProcessorListSchemas=function(e,t){const r=co.Reference.bind(void 0,e),i=co.StringNode.bind(void 0,t);so.Processors=co.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",co.Mod(co.ObjectNode({processors:co.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",co.Mod(co.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[co.Switch]:[{push:"processor_type"}],[co.Case]:{"minecraft:block_age":{mossiness:co.NumberNode()},"minecraft:block_ignore":{blocks:co.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:co.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:co.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:co.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",co.Mod(co.ObjectNode({position_predicate:co.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:co.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),max_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),min_chance:co.Opt(co.NumberNode({min:0,max:1})),max_chance:co.Opt(co.NumberNode({min:0,max:1}))};e.register("pos_rule_test",co.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},n),"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",co.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:co.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:co.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ao,"__esModule",{value:!0}),ao.initFeatureSchemas=void 0;const lo=Le,uo=wn,po=so;ao.initFeatureSchemas=function(e,t){const r=lo.Reference.bind(void 0,e),i=lo.StringNode.bind(void 0,t),n={can_replace:lo.Opt(lo.BooleanNode()),project:lo.Opt(lo.BooleanNode()),need_water:lo.Opt(lo.BooleanNode()),xspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),yspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),zspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),tries:lo.Opt(lo.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:lo.ListNode(r("block_state")),blacklist:lo.ListNode(r("block_state"))},o={state:r("block_state"),radius:uo.IntProvider({min:0,max:8}),half_height:lo.NumberNode({integer:!0,min:0,max:4}),targets:lo.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:lo.Opt(lo.NumberNode({integer:!0}))},s=lo.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:lo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:lo.NumberNode({min:0,max:1}),targets:lo.ListNode(s)},l=lo.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),d={surface:i({enum:["floor","ceiling"]}),depth:uo.IntProvider({min:1,max:128}),vertical_range:lo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:lo.NumberNode({min:0,max:1}),extra_edge_column_chance:lo.NumberNode({min:0,max:1}),vegetation_chance:lo.NumberNode({min:0,max:1}),xz_radius:uo.IntProvider(),replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",lo.Mod(lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:bamboo":{probability:lo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:uo.IntProvider({min:0,max:3}),height:uo.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:uo.IntProvider({min:0,max:16}),rim_size:uo.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:lo.NumberNode({integer:!0,min:1,max:512}),height:uo.IntProvider({min:0,max:128}),radius:uo.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:lo.NumberNode({integer:!0,min:0,max:64}),height_deviation:lo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:uo.IntProvider({min:0,max:128}),density:uo.FloatProvider({min:0,max:2}),wetness:uo.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:lo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:lo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:lo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:lo.BooleanNode(),exit:lo.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:lo.Opt(lo.BooleanNode()),crystal_beam_target:lo.Opt(r("block_pos")),spikes:lo.ListNode(lo.ObjectNode({centerX:lo.Opt(lo.NumberNode({integer:!0})),centerZ:lo.Opt(lo.NumberNode({integer:!0})),radius:lo.Opt(lo.NumberNode({integer:!0})),height:lo.Opt(lo.NumberNode({integer:!0})),guarded:lo.Opt(lo.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:lo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":n,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:lo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:lo.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:lo.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:po.Processors,overlay_processors:po.Processors},"minecraft:geode":{blocks:lo.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:lo.ListNode(r("block_state")),cannot_replace:i({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:i({validator:"resource",params:{pool:"$tag/block"}})}),layers:lo.ObjectNode({filling:lo.Opt(lo.NumberNode({min:.01,max:50})),inner_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),middle_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),outer_layer:lo.Opt(lo.NumberNode({min:.01,max:50}))}),crack:lo.ObjectNode({generate_crack_chance:lo.Opt(lo.NumberNode({min:0,max:1})),base_crack_size:lo.Opt(lo.NumberNode({min:0,max:5})),crack_point_offset:lo.Opt(lo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:lo.Opt(lo.NumberNode({min:0,max:1})),use_potential_placements_chance:lo.Opt(lo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:lo.Opt(lo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:lo.Opt(lo.BooleanNode()),outer_wall_distance:lo.Opt(uo.IntProvider({min:1,max:20})),distribution_points:lo.Opt(uo.IntProvider({min:1,max:20})),point_offset:lo.Opt(uo.IntProvider({min:0,max:10})),min_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),max_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),invalid_blocks_threshold:lo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:lo.Opt(lo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:lo.Opt(lo.NumberNode({min:0,max:1})),can_place_on_floor:lo.Opt(lo.BooleanNode()),can_place_on_ceiling:lo.Opt(lo.BooleanNode()),can_place_on_wall:lo.Opt(lo.BooleanNode()),can_be_placed_on:lo.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:i({enum:["up","down","north","east","south","west"]}),allow_water:lo.BooleanNode(),height_distribution:lo.ListNode(lo.ObjectNode({weight:lo.NumberNode({integer:!0}),data:uo.IntProvider()})),body_provider:r("block_state_provider"),head_provider:r("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:lo.Opt(lo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:lo.Opt(lo.NumberNode({integer:!0,min:1,max:512})),column_radius:uo.IntProvider({min:0,max:60}),height_scale:uo.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:lo.NumberNode({min:0,max:1}),stalactite_bluntness:uo.FloatProvider({min:.1,max:10}),stalagmite_bluntness:uo.FloatProvider({min:.1,max:10}),wind_speed:uo.FloatProvider({min:0,max:2}),min_radius_for_wind:lo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:lo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:uo.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":n,"minecraft:ore":c,"minecraft:random_patch":n,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:lo.ListNode(lo.ObjectNode({chance:lo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:lo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_radius:lo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:lo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:lo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:lo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:lo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:uo.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:lo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:lo.Opt(lo.ListNode(r("block_state"))),place_in:lo.Opt(lo.ListNode(r("block_state"))),place_under:lo.Opt(lo.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:lo.ListNode(l)},"minecraft:small_dripstone":{max_placements:lo.Opt(lo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:lo.Opt(lo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:lo.NumberNode({integer:!0}),hole_count:lo.NumberNode({integer:!0}),requires_block_below:lo.BooleanNode(),valid_blocks:lo.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:lo.Opt(lo.BooleanNode()),force_dirt:lo.Opt(lo.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),sapling_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:lo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:lo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:lo.NumberNode({integer:!0,min:0,max:24}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:bending_trunk_placer":{bend_length:uo.IntProvider({min:1,max:64}),min_height_for_leaves:lo.Opt(lo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:uo.IntProvider({min:0,max:16}),offset:uo.IntProvider({min:0,max:16}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:blob_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:uo.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:uo.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:uo.IntProvider({min:1,max:512}),leaf_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:uo.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:lo.ListNode(lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:lo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:lo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:lo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:lo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:lo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":d,"minecraft:waterlogged_vegetation_patch":d}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",lo.Mod(lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:lo.Opt(lo.NumberNode({min:0,max:80})),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:two_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:81})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),upper_limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),middle_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",lo.Mod(lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:randomized_int_state_provider":{property:i(),values:uo.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:lo.ListNode(lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",lo.Mod(lo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:column_placer":{size:uo.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var mo={};Object.defineProperty(mo,"__esModule",{value:!0}),mo.initNoiseSettingsSchemas=void 0;const _o=Le,ho=wn;mo.initNoiseSettingsSchemas=function(e,t){const r=_o.Reference.bind(void 0,e),i=_o.StringNode.bind(void 0,t);e.register("noise_settings",_o.Mod(_o.ObjectNode({name:_o.Mod(i({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:_o.NumberNode({integer:!0}),bedrock_floor_position:_o.NumberNode({integer:!0}),sea_level:_o.NumberNode({integer:!0}),min_surface_level:_o.NumberNode({integer:!0}),disable_mob_generation:_o.BooleanNode(),noise_caves_enabled:_o.BooleanNode(),noodle_caves_enabled:_o.BooleanNode(),aquifers_enabled:_o.BooleanNode(),deepslate_enabled:_o.BooleanNode(),ore_veins_enabled:_o.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:_o.ObjectNode({min_y:_o.NumberNode({integer:!0,min:-2048,max:2047}),height:_o.NumberNode({integer:!0,min:0,max:4096}),density_factor:_o.NumberNode(),density_offset:_o.NumberNode(),size_horizontal:_o.NumberNode({integer:!0}),size_vertical:_o.NumberNode({integer:!0}),simplex_surface_noise:_o.BooleanNode(),random_density_offset:_o.Opt(_o.BooleanNode()),island_noise_override:_o.Opt(_o.BooleanNode()),amplified:_o.Opt(_o.BooleanNode()),sampling:_o.ObjectNode({xz_scale:_o.NumberNode(),y_scale:_o.NumberNode(),xz_factor:_o.NumberNode(),y_factor:_o.NumberNode()}),bottom_slide:_o.ObjectNode({target:_o.NumberNode({integer:!0}),size:_o.NumberNode({integer:!0,min:0}),offset:_o.NumberNode({integer:!0})}),top_slide:_o.ObjectNode({target:_o.NumberNode({integer:!0}),size:_o.NumberNode({integer:!0,min:0}),offset:_o.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>ho.DefaultNoiseSettings,validate:(t,r,i,n)=>{var o,a,s,c;return(null===(o=null==(r=e.validate(t,r,i,n))?void 0:r.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==r?void 0:r.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("generator_structures",_o.ObjectNode({stronghold:_o.Opt(_o.ObjectNode({distance:_o.NumberNode({integer:!0,min:0,max:1023}),spread:_o.NumberNode({integer:!0,min:0,max:1023}),count:_o.NumberNode({integer:!0,min:1,max:4095})})),structures:_o.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),_o.Mod(_o.ObjectNode({spacing:_o.NumberNode({integer:!0,min:0,max:4096}),separation:_o.Mod(_o.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,i,n)=>(t.pop().push("spacing").get()<=r&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,r,i,n))}))),salt:_o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",_o.Mod(_o.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:_o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var fo={};Object.defineProperty(fo,"__esModule",{value:!0}),fo.initStructureFeatureSchemas=void 0;const go=Le;fo.initStructureFeatureSchemas=function(e,t){const r=go.StringNode.bind(void 0,t),i=go.Reference.bind(void 0,e),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:go.NumberNode({integer:!0})};e.register("configured_structure_feature",go.Mod(go.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:go.ObjectNode({[go.Switch]:["pop",{push:"type"}],[go.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:go.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:go.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:go.NumberNode({min:0,max:1}),cluster_probability:go.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:go.Opt(go.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initSurfaceBuilderSchemas=void 0;const yo=Le;bo.initSurfaceBuilderSchemas=function(e,t){const r=yo.StringNode.bind(void 0,t),i=yo.Reference.bind(void 0,e);e.register("configured_surface_builder",yo.Mod(yo.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:yo.ObjectNode({top_material:i("block_state"),under_material:i("block_state"),underwater_material:i("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var vo={};Object.defineProperty(vo,"__esModule",{value:!0}),vo.initTemplatePoolSchemas=void 0;const No=Le,xo=so;vo.initTemplatePoolSchemas=function(e,t){const r=No.Reference.bind(void 0,e),i=No.StringNode.bind(void 0,t);e.register("template_pool",No.Mod(No.ObjectNode({name:i(),fallback:i(),elements:No.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",No.Mod(No.ObjectNode({weight:No.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",No.Mod(No.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[No.Switch]:[{push:"element_type"}],[No.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors},"minecraft:list_pool_element":{elements:No.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.initWorldgenSchemas=void 0;const wo=Vn,ko=eo,Oo=io,So=ao,Do=mo,Ao=so,Co=fo,Eo=bo,jo=vo;Yn.initWorldgenSchemas=function(e,t){Ao.initProcessorListSchemas(e,t),wo.initBiomeSchemas(e,t),ko.initCarverSchemas(e,t),Oo.initDecoratorSchemas(e,t),So.initFeatureSchemas(e,t),Do.initNoiseSettingsSchemas(e,t),Co.initStructureFeatureSchemas(e,t),Eo.initSurfaceBuilderSchemas(e,t),jo.initTemplatePoolSchemas(e,t)};var Fo={};Object.defineProperty(Fo,"__esModule",{value:!0}),Fo.initWorldSettingsSchemas=void 0;const Bo=Le;Fo.initWorldSettingsSchemas=function(e,t){const r=Bo.Reference.bind(void 0,e),i=Bo.StringNode.bind(void 0,t);e.register("world_settings",Bo.Mod(Bo.ObjectNode({generate_features:Bo.BooleanNode(),bonus_chest:Bo.BooleanNode(),seed:Bo.NumberNode({integer:!0}),dimensions:Bo.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(mn,"__esModule",{value:!0}),mn.initSchemas=void 0;const Mo=_n,To=fn,Lo=wn,Po=kn,Io=Dn,Ro=En,zo=Bn,Uo=Ln,$o=Un,qo=qn,Xo=Jn,Jo=Wn,Ho=Gn,Wo=Yn,Zo=Fo;mn.initSchemas=function(e,t){Lo.initCommonSchemas(e,t),Mo.initAdvancementSchemas(e,t),To.initAssetsSchemas(e,t),Po.initConditionSchemas(e,t),Ro.initDimensionTypeSchemas(e,t),Io.initDimensionSchemas(e,t),zo.initItemModifierSchemas(e,t),Uo.initLootTableSchemas(e,t),$o.initPackMcmetaSchemas(e,t),qo.initPredicatesSchemas(e,t),Xo.initRecipeSchemas(e,t),Jo.initTagsSchemas(e,t),Ho.initTextComponentSchemas(e,t),Wo.initWorldgenSchemas(e,t),Zo.initWorldSettingsSchemas(e,t)};var Go=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),Ko=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Yo=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&Go(t,e,r);return Ko(t,e),t};Object.defineProperty(un,"__esModule",{value:!0});var Vo=un.getSchemas=un.getCollections=void 0;const Qo=Le,ea=pn,ta=mn;var ra=un.lootContext=Yo(Pn);var ia=un.getCollections=function(){const e=new Qo.CollectionRegistry;return ea.initCollections(e),e};Vo=un.getSchemas=function(e){const t=new Qo.SchemaRegistry;return ta.initSchemas(t,e),t};var na=Object.freeze(Object.assign(Object.create(null),un,{[Symbol.toStringTag]:"Module",get getSchemas(){return Vo},get getCollections(){return ia},lootContext:ra,default:un})),oa={},aa={};Object.defineProperty(aa,"__esModule",{value:!0}),aa.initCollections=void 0,aa.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var sa={},ca={};Object.defineProperty(ca,"__esModule",{value:!0}),ca.initAdvancementSchemas=void 0;const la=Le;ca.initAdvancementSchemas=function(e,t){const r=la.Reference.bind(void 0,e),i=la.StringNode.bind(void 0,t),n=la.ChoiceNode([{type:"object",node:la.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:la.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",la.Mod(la.ObjectNode({display:la.Opt(la.Mod(la.ObjectNode({icon:la.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:la.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:la.Opt(i()),frame:la.Opt(i({enum:["task","challenge","goal"]})),show_toast:la.Opt(la.BooleanNode()),announce_to_chat:la.Opt(la.BooleanNode()),hidden:la.Opt(la.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:la.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:la.MapNode(i(),r("advancement_criteria")),requirements:la.Opt(la.ListNode(la.ListNode(i()))),rewards:la.Opt(la.ObjectNode({function:la.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:la.Opt(la.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:la.Opt(la.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:la.Opt(la.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",la.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:la.Opt(la.ObjectNode({player:la.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[la.Switch]:["pop",{push:"trigger"}],[la.Case]:{"minecraft:bee_nest_destroyed":{block:la.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:la.Opt(la.NumberNode({integer:!0})),item:la.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:la.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:la.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:la.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:la.Opt(la.ListNode(n))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:la.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:la.Opt(la.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),la.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:la.Opt(n)},"minecraft:enter_block":{block:la.Opt(i({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:la.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:la.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:la.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:la.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:la.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:la.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:la.Opt(la.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:la.Opt(la.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:la.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:la.Opt(r("item_predicate")),location:la.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:la.Opt(la.ListNode(n))},"minecraft:levitation":{distance:la.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:n,bystander:n},"minecraft:location":{location:la.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:la.Opt(i({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:la.Opt(r("item_predicate")),location:la.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:la.Opt(r("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:la.Opt(r("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:la.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:la.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:la.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:la.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:la.Opt(r("entity_predicate")),item:la.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:la.Opt(r("float_bounds"))},"minecraft:used_totem":{item:la.Opt(r("item_predicate"))},"minecraft:using_item":{item:la.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:la.Opt(r("entity_predicate")),item:la.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:la.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var da={},ua={};Object.defineProperty(ua,"__esModule",{value:!0}),ua.initModelSchemas=void 0;const pa=Le;ua.initModelSchemas=function(e,t){pa.Reference.bind(void 0,e);const r=pa.StringNode.bind(void 0,t),i=(e,t,r)=>pa.ListNode(pa.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),n=pa.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",pa.Mod(pa.ObjectNode({parent:pa.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:pa.Opt(pa.BooleanNode()),gui_light:pa.Opt(r({enum:"gui_light"})),textures:pa.Opt(pa.MapNode(r(),n)),elements:pa.Opt(pa.ListNode(pa.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:pa.Opt(pa.ObjectNode({origin:i(3),axis:r({enum:"axis"}),angle:pa.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:pa.Opt(pa.BooleanNode())})),shade:pa.Opt(pa.BooleanNode()),faces:pa.MapNode(r({enum:"direction"}),pa.ObjectNode({texture:n,uv:pa.Opt(i(4)),cullface:pa.Opt(r({enum:"direction"})),rotation:pa.Opt(pa.NumberNode({integer:!0})),tintindex:pa.Opt(pa.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:pa.Opt(pa.MapNode(r({enum:"display_position"}),pa.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:pa.Opt(pa.ListNode(pa.ObjectNode({predicate:pa.MapNode(r({enum:"item_model_predicates"}),pa.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ma={};Object.defineProperty(ma,"__esModule",{value:!0}),ma.initBlockDefinitionSchemas=void 0;const _a=Le;ma.initBlockDefinitionSchemas=function(e,t){const r=_a.Reference.bind(void 0,e),i=_a.StringNode.bind(void 0,t);e.register("block_definition",_a.Mod(_a.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:_a.ObjectNode({variants:_a.MapNode(i(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:_a.ObjectNode({multipart:_a.ListNode(_a.ObjectNode({when:_a.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const n={model:i({validator:"resource",params:{pool:"$model"}}),x:_a.Opt(_a.NumberEnum({integer:!0,values:[0,90,180,270]})),y:_a.Opt(_a.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:_a.Opt(_a.BooleanNode())};e.register("model_variant",_a.ChoiceNode([{type:"object",node:_a.ObjectNode(n),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:_a.ListNode(_a.ObjectNode(c(s({},n),{weight:_a.Opt(_a.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",_a.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:_a.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:_a.ObjectNode({OR:_a.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(da,"__esModule",{value:!0}),da.initAssetsSchemas=void 0;const ha=ua,fa=ma;da.initAssetsSchemas=function(e,t){fa.initBlockDefinitionSchemas(e,t),ha.initModelSchemas(e,t)};var ga={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Le;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const r={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},e.initCommonSchemas=function(i,n){const o=t.StringNode.bind(void 0,n),a=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",c(!0)),i.register("float_bounds",c()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,r,i,n,a,c,l)=>{let d={};a&&Object.keys(l[a]).forEach((e=>{d[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const u=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},d),{context:c,disableSwitchContext:!0}),p=[{type:r,node:l[n][i]}];return a&&p.push({type:"object",priority:-1,node:u}),Object.keys(l).forEach((e=>{p.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:u,change:t=>({type:e})})})),t.ChoiceNode(p,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,i,n;return{[e]:null!==(n=null!==(i=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==n?n:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=o({enum:"copy_source"}),i=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:i},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(i),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(i),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=r=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:r}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:r}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}}})}}(ga);var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initConditionSchemas=void 0;const ya=Le,va=ga;ba.initConditionSchemas=function(e,t){const r=ya.Reference.bind(void 0,e),i=ya.StringNode.bind(void 0,t);e.register("predicate",ya.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",ya.Mod(ya.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[ya.Switch]:[{push:"condition"}],[ya.Case]:va.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Na={};Object.defineProperty(Na,"__esModule",{value:!0}),Na.initDimensionSchemas=void 0;const xa=Le,wa=ga;Na.initDimensionSchemas=function(e,t){const r=xa.Reference.bind(void 0,e),i=xa.StringNode.bind(void 0,t);e.register("dimension",xa.Mod(xa.ObjectNode({type:wa.DimensionTypePresets(r("dimension_type")),generator:xa.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:noise":{seed:xa.NumberNode({integer:!0}),settings:wa.NoiseSettingsPresets(r("noise_settings")),biome_source:xa.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:xa.Opt(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:xa.Mod(xa.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:xa.Opt(xa.NumberNode({integer:!0,min:0,max:62})),biomes:xa.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:xa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:xa.ObjectNode({biome:xa.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:xa.Opt(xa.BooleanNode()),features:xa.Opt(xa.BooleanNode()),layers:xa.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=xa.ChoiceNode([{type:"number",node:xa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:xa.ListNode(xa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",xa.Mod(xa.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:xa.ObjectNode({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:xa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var ka={};Object.defineProperty(ka,"__esModule",{value:!0}),ka.initDimensionTypeSchemas=void 0;const Oa=Le,Sa=ga;ka.initDimensionTypeSchemas=function(e,t){const r=Oa.StringNode.bind(void 0,t);e.register("dimension_type",Oa.Mod(Oa.ObjectNode({ultrawarm:Oa.BooleanNode(),natural:Oa.BooleanNode(),piglin_safe:Oa.BooleanNode(),respawn_anchor_works:Oa.BooleanNode(),bed_works:Oa.BooleanNode(),has_raids:Oa.BooleanNode(),has_skylight:Oa.BooleanNode(),has_ceiling:Oa.BooleanNode(),coordinate_scale:Oa.NumberNode({min:1e-5,max:3e7}),ambient_light:Oa.NumberNode(),fixed_time:Oa.Opt(Oa.NumberNode({integer:!0})),logical_height:Oa.NumberNode({integer:!0,min:0,max:4096}),effects:Oa.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Oa.NumberNode({integer:!0,min:-2048,max:2047}),height:Oa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Sa.DefaultDimensionType,validate:(t,r,i,n)=>((null==(r=e.validate(t,r,i,n))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&i.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.initItemModifierSchemas=void 0;const Aa=Le,Ca=ga;Da.initItemModifierSchemas=function(e,t){const r=Aa.Reference.bind(void 0,e),i=Aa.StringNode.bind(void 0,t);e.register("item_modifier",Aa.ObjectOrList(r("function"),{choiceContext:"function"}));const n={conditions:Aa.Opt(Aa.ListNode(r("condition")))};e.register("function",Aa.Mod(Aa.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[Aa.Switch]:[{push:"function"}],[Aa.Case]:Ca.FunctionCases(n)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ea={},ja={};Object.defineProperty(ja,"__esModule",{value:!0}),ja.LootFunctions=ja.LootConditions=ja.LootCopySources=ja.LootEntitySources=ja.LootTableTypes=void 0,ja.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),ja.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ja.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),ja.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initLootTableSchemas=void 0;const Fa=Le,Ba=ja,Ma=ga;Ea.initLootTableSchemas=function(e,t){const r=Fa.Reference.bind(void 0,e),i=Fa.StringNode.bind(void 0,t),n={conditions:Fa.Opt(Fa.ListNode(r("loot_condition")))},o=s({functions:Fa.Opt(Fa.ListNode(r("loot_function")))},n);function a(e,r,i){const n=[],o=i=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ba.LootTableTypes){const e=[...a,...s];n.push({match:e=>e.getModel().get(new Fa.Path(["type"]))===t,node:i(o(e))})}return n.push({match:e=>!0,node:i(r)}),Fa.SwitchNode(n)}const c=a(Ba.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ba.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Ba.LootEntitySources,"entity_source",(e=>i({enum:e}))),u=a(Ba.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Fa.Mod(Fa.ObjectNode({type:Fa.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Fa.Opt(Fa.ListNode(Fa.Mod(Fa.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:Fa.Opt(r("number_provider")),entries:Fa.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Fa.Opt(Fa.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Fa.Mod(Fa.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Fa.Opt(Fa.Mod(Fa.NumberNode({integer:!0,min:1}),p)),quality:Fa.Opt(Fa.Mod(Fa.NumberNode({integer:!0}),p)),[Fa.Switch]:[{push:"type"}],[Fa.Case]:{"minecraft:alternatives":s({children:Fa.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Fa.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Fa.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Fa.Opt(Fa.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Fa.Mod(Fa.ObjectNode({function:l,[Fa.Switch]:[{push:"function"}],[Fa.Case]:Ma.FunctionCases(n,u,d)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Fa.Mod(Fa.ObjectNode({condition:c,[Fa.Switch]:[{push:"condition"}],[Fa.Case]:Ma.ConditionCases(d)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Fa.Mod(Fa.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:r("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Fa.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ta={};Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.initPackMcmetaSchemas=void 0;const La=Le;Ta.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",La.Mod(La.ObjectNode({pack:La.Mod(La.ObjectNode({pack_format:La.Mod(La.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:La.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.initPredicatesSchemas=void 0;const Ia=Le;Pa.initPredicatesSchemas=function(e,t){const r=Ia.Reference.bind(void 0,e),i=Ia.StringNode.bind(void 0,t),n=Ia.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Ia.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Ia.ObjectNode({min:Ia.Opt(Ia.NumberNode({integer:!0})),max:Ia.Opt(Ia.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Ia.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Ia.ObjectNode({items:Ia.Opt(Ia.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:Ia.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:Ia.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:Ia.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Ia.Opt(Ia.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Ia.ObjectNode({enchantment:Ia.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Ia.ObjectNode({blocks:Ia.Opt(Ia.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:Ia.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:Ia.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Ia.Opt(Ia.MapNode(i(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Ia.ObjectNode({fluid:Ia.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:Ia.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:Ia.Opt(Ia.MapNode(i(),n))},{context:"fluid"})),e.register("location_predicate",Ia.ObjectNode({position:Ia.Opt(Ia.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:Ia.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Ia.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Ia.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:Ia.Opt(Ia.ObjectNode({light:r("int_bounds")})),smokey:Ia.Opt(Ia.BooleanNode()),block:Ia.Opt(r("block_predicate")),fluid:Ia.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Ia.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:r("int_bounds"),[Ia.Switch]:[{push:"type"}],[Ia.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Ia.ObjectNode({gamemode:Ia.Opt(i({enum:"gamemode"})),level:r("int_bounds"),advancements:Ia.Opt(Ia.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),Ia.ChoiceNode([{type:"boolean",node:Ia.BooleanNode(),change:e=>!0},{type:"object",node:Ia.MapNode(i(),Ia.BooleanNode())}]))),recipes:Ia.Opt(Ia.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),Ia.BooleanNode())),stats:Ia.Opt(Ia.ListNode(r("statistic_predicate"))),looking_at:Ia.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Ia.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:Ia.Opt(Ia.BooleanNode()),visible:Ia.Opt(Ia.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Ia.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",Ia.ObjectNode({type:Ia.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Ia.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Ia.Opt(i({validator:"team"})),location:Ia.Opt(r("location_predicate")),stepping_on:Ia.Opt(r("location_predicate")),distance:Ia.Opt(r("distance_predicate")),flags:Ia.Opt(Ia.ObjectNode({is_on_fire:Ia.Opt(Ia.BooleanNode()),is_sneaking:Ia.Opt(Ia.BooleanNode()),is_sprinting:Ia.Opt(Ia.BooleanNode()),is_swimming:Ia.Opt(Ia.BooleanNode()),is_baby:Ia.Opt(Ia.BooleanNode())})),equipment:Ia.Opt(Ia.MapNode(i({enum:"slot"}),r("item_predicate"))),player:Ia.Opt(r("player_predicate")),vehicle:Ia.Opt(r("entity_predicate")),passenger:Ia.Opt(r("entity_predicate")),targeted_entity:Ia.Opt(r("entity_predicate")),lightning_bolt:Ia.Opt(Ia.ObjectNode({blocks_set_on_fire:Ia.Opt(r("int_bounds")),entity_struck:Ia.Opt(r("entity_predicate"))})),fishing_hook:Ia.Opt(Ia.ObjectNode({in_open_water:Ia.Opt(Ia.BooleanNode())})),effects:Ia.Opt(Ia.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Ia.ObjectNode({is_explosion:Ia.Opt(Ia.BooleanNode()),is_fire:Ia.Opt(Ia.BooleanNode()),is_magic:Ia.Opt(Ia.BooleanNode()),is_projectile:Ia.Opt(Ia.BooleanNode()),is_lightning:Ia.Opt(Ia.BooleanNode()),bypasses_armor:Ia.Opt(Ia.BooleanNode()),bypasses_invulnerability:Ia.Opt(Ia.BooleanNode()),bypasses_magic:Ia.Opt(Ia.BooleanNode()),source_entity:Ia.Opt(r("entity_predicate")),direct_entity:Ia.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Ia.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:Ia.Opt(Ia.BooleanNode()),source_entity:Ia.Opt(r("entity_predicate")),type:Ia.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.initRecipeSchemas=void 0;const za=Le;Ra.initRecipeSchemas=function(e,t){const r=za.Reference.bind(void 0,e),i=za.StringNode.bind(void 0,t);e.register("recipe",za.Mod(za.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[za.Switch]:[{push:"type"}],[za.Case]:{"minecraft:crafting_shaped":{group:za.Opt(i({enum:"recipe_group",additional:!0})),pattern:za.ListNode(i()),key:za.MapNode(i(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:za.Opt(i()),ingredients:za.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:za.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:za.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:za.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:za.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:za.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:za.NumberNode({integer:!0})},"minecraft:smithing":{group:za.Opt(i()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",za.Mod(za.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:za.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",za.Mod(za.ObjectNode({item:za.Opt(i({validator:"resource",params:{pool:"item"}})),tag:za.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",za.Mod(za.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initTagsSchemas=void 0;const $a=Le;Ua.initTagsSchemas=function(e,t){const r=$a.StringNode.bind(void 0,t),i=e=>$a.Mod($a.ObjectNode({replace:$a.Opt($a.BooleanNode()),values:$a.ListNode($a.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:$a.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:$a.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item"))};var qa={};Object.defineProperty(qa,"__esModule",{value:!0}),qa.initTextComponentSchemas=void 0;const Xa=Le;qa.initTextComponentSchemas=function(e,t){const r=Xa.Reference.bind(void 0,e),i=Xa.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Xa.Mod(Xa.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:n},{type:"number",node:Xa.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Xa.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Xa.Opt(i()),font:Xa.Opt(i()),bold:Xa.Opt(Xa.BooleanNode()),italic:Xa.Opt(Xa.BooleanNode()),underlined:Xa.Opt(Xa.BooleanNode()),strikethrough:Xa.Opt(Xa.BooleanNode()),obfuscated:Xa.Opt(Xa.BooleanNode()),insertion:Xa.Opt(i()),clickEvent:Xa.Opt(Xa.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Xa.Opt(Xa.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[Xa.Switch]:[{push:"action"}],[Xa.Case]:{show_text:{value:Xa.Opt(r("text_component")),contents:Xa.Opt(r("text_component"))},show_item:{value:Xa.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Xa.Opt(Xa.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:Xa.Opt(Xa.NumberNode({integer:!0})),tag:Xa.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Xa.Opt(Xa.ObjectNode({name:Xa.Opt(i()),type:Xa.Opt(i()),id:Xa.Opt(i())})),contents:Xa.Opt(Xa.Mod(Xa.ObjectNode({name:Xa.Opt(r("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Xa.Opt(r("text_component_list"))};e.register("text_component_object",Xa.Mod(Xa.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Xa.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Xa.ObjectNode(s({translate:i(),with:Xa.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Xa.ObjectNode(s({score:Xa.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:Xa.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Xa.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Xa.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Xa.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Xa.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:Xa.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Xa.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Xa.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:Xa.Opt(Xa.BooleanNode()),separator:Xa.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Xa.Mod(Xa.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ja={},Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initBiomeSchemas=void 0;const Wa=Le;Ha.initBiomeSchemas=function(e,t){const r=Wa.StringNode.bind(void 0,t);e.register("biome",Wa.Mod(Wa.ObjectNode({temperature:Wa.NumberNode(),downfall:Wa.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Wa.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),creature_spawn_probability:Wa.Opt(Wa.NumberNode({min:0,max:1})),effects:Wa.ObjectNode({sky_color:Wa.NumberNode({color:!0}),fog_color:Wa.NumberNode({color:!0}),water_color:Wa.NumberNode({color:!0}),water_fog_color:Wa.NumberNode({color:!0}),grass_color:Wa.Opt(Wa.NumberNode({color:!0})),foliage_color:Wa.Opt(Wa.NumberNode({color:!0})),grass_color_modifier:Wa.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Wa.Opt(r()),mood_sound:Wa.Opt(Wa.ObjectNode({sound:r(),tick_delay:Wa.NumberNode({integer:!0}),block_search_extent:Wa.NumberNode({integer:!0}),offset:Wa.NumberNode()})),additions_sound:Wa.Opt(Wa.ObjectNode({sound:r(),tick_chance:Wa.NumberNode({min:0,max:1})})),music:Wa.Opt(Wa.ObjectNode({sound:r(),min_delay:Wa.NumberNode({integer:!0,min:0}),max_delay:Wa.NumberNode({integer:!0,min:0}),replace_current_music:Wa.BooleanNode()})),particle:Wa.Opt(Wa.ObjectNode({options:Wa.ObjectNode({type:r()}),probability:Wa.NumberNode({min:0,max:1})}))}),spawners:Wa.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Wa.Mod(Wa.ListNode(Wa.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Wa.NumberNode({integer:!0}),minCount:Wa.NumberNode({integer:!0}),maxCount:Wa.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Wa.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Wa.Mod(Wa.ObjectNode({energy_budget:Wa.NumberNode(),charge:Wa.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Wa.MapNode(r({enum:["air","liquid"]}),Wa.Mod(Wa.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Wa.ListNode(Wa.Mod(Wa.ListNode(r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Za={};Object.defineProperty(Za,"__esModule",{value:!0}),Za.initCarverSchemas=void 0;const Ga=Le,Ka=ga;Za.initCarverSchemas=function(e,t){const r=Ga.Reference.bind(void 0,e),i=Ga.StringNode.bind(void 0,t),n={vertical_rotation:Ka.FloatProvider(),shape:Ga.ObjectNode({distance_factor:Ka.FloatProvider(),thickness:Ka.FloatProvider(),width_smoothness:Ga.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ka.FloatProvider(),vertical_radius_default_factor:Ga.NumberNode(),vertical_radius_center_factor:Ga.NumberNode()})},o={horizontal_radius_multiplier:Ka.FloatProvider(),vertical_radius_multiplier:Ka.FloatProvider(),floor_level:Ka.FloatProvider({min:-1,max:1})};e.register("configured_carver",Ga.Mod(Ga.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:Ga.ObjectNode({probability:Ga.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Ka.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:Ga.Opt(Ga.ObjectNode({debug_mode:Ga.Opt(Ga.BooleanNode()),air_state:Ga.Opt(r("block_state")),water_state:Ga.Opt(r("block_state")),lava_state:Ga.Opt(r("block_state")),barrier_state:Ga.Opt(r("block_state"))})),[Ga.Switch]:["pop",{push:"type"}],[Ga.Case]:{"minecraft:canyon":n,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initDecoratorSchemas=void 0;const Va=Le,Qa=ga;Ya.initDecoratorSchemas=function(e,t){const r=Va.Reference.bind(void 0,e),i=Va.StringNode.bind(void 0,t);e.register("decorator",Va.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Va.Switch]:[{push:"type"}],[Va.Case]:{"minecraft:block_predicate_filter":{predicate:r("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Va.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Qa.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Qa.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Va.NumberNode(),below_noise:Va.NumberNode({integer:!0}),above_noise:Va.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Va.NumberNode({integer:!0}),noise_factor:Va.NumberNode(),noise_offset:Va.Opt(Va.NumberNode())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:Va.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen"),allowed_search_condition:Va.Opt(r("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:r("height_provider")},"minecraft:random_offset":{xz_spread:Qa.IntProvider({min:-16,max:16}),y_spread:Qa.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:Va.Opt(Va.NumberNode({integer:!0})),max_inclusive:Va.Opt(Va.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Va.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=ts.Processors=void 0;const rs=Le;ts.initProcessorListSchemas=function(e,t){const r=rs.Reference.bind(void 0,e),i=rs.StringNode.bind(void 0,t);ts.Processors=rs.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",rs.Mod(rs.ObjectNode({processors:rs.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",rs.Mod(rs.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[rs.Switch]:[{push:"processor_type"}],[rs.Case]:{"minecraft:block_age":{mossiness:rs.NumberNode()},"minecraft:block_ignore":{blocks:rs.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:rs.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:rs.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:rs.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",rs.Mod(rs.ObjectNode({position_predicate:rs.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:rs.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:rs.Opt(rs.NumberNode({min:0,max:255,integer:!0})),max_dist:rs.Opt(rs.NumberNode({min:0,max:255,integer:!0})),min_chance:rs.Opt(rs.NumberNode({min:0,max:1})),max_chance:rs.Opt(rs.NumberNode({min:0,max:1}))};e.register("pos_rule_test",rs.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[rs.Switch]:[{push:"predicate_type"}],[rs.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},n),"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",rs.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[rs.Switch]:[{push:"predicate_type"}],[rs.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:rs.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:rs.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(es,"__esModule",{value:!0}),es.initFeatureSchemas=void 0;const is=Le,ns=ga,os=ts;es.initFeatureSchemas=function(e,t){const r=is.Reference.bind(void 0,e),i=is.StringNode.bind(void 0,t),n=is.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),o=is.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:r("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:is.Opt(is.NumberNode({integer:!0,min:1})),xz_spread:is.Opt(is.NumberNode({integer:!0,min:0})),y_spread:is.Opt(is.NumberNode({integer:!0,min:0})),feature:o},l={state:r("block_state"),radius:ns.IntProvider({min:0,max:8}),half_height:is.NumberNode({integer:!0,min:0,max:4}),targets:is.ListNode(r("block_state"))},d={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:is.Opt(is.NumberNode({integer:!0}))},u=is.ObjectNode({target:r("rule_test"),state:r("block_state")}),p={size:is.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:is.NumberNode({min:0,max:1}),targets:is.ListNode(u)},m={surface:i({enum:"cave_surface"}),depth:ns.IntProvider({min:1,max:128}),vertical_range:is.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:is.NumberNode({min:0,max:1}),extra_edge_column_chance:is.NumberNode({min:0,max:1}),vegetation_chance:is.NumberNode({min:0,max:1}),xz_radius:ns.IntProvider(),replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:o};e.register("configured_feature",is.Mod(is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:is.ObjectNode({[is.Switch]:["pop",{push:"type"}],[is.Case]:{"minecraft:bamboo":{probability:is.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:ns.IntProvider({min:0,max:3}),height:ns.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:r("block_predicate_worldgen"),prioritize_tip:is.BooleanNode(),layers:is.ListNode(is.ObjectNode({height:ns.IntProvider({min:0}),provider:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:ns.IntProvider({min:0,max:16}),rim_size:ns.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:is.NumberNode({integer:!0,min:1,max:512}),height:ns.IntProvider({min:0,max:128}),radius:ns.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:is.NumberNode({integer:!0,min:0,max:64}),height_deviation:is.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:ns.IntProvider({min:0,max:128}),density:ns.FloatProvider({min:0,max:2}),wetness:ns.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:is.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:is.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:is.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:is.BooleanNode(),exit:is.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:is.Opt(is.BooleanNode()),crystal_beam_target:is.Opt(r("block_pos")),spikes:is.ListNode(is.ObjectNode({centerX:is.Opt(is.NumberNode({integer:!0})),centerZ:is.Opt(is.NumberNode({integer:!0})),radius:is.Opt(is.NumberNode({integer:!0})),height:is.Opt(is.NumberNode({integer:!0})),guarded:is.Opt(is.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:is.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:is.NumberNode({integer:!0,min:0,max:7}),fossil_structures:is.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:is.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:os.Processors,overlay_processors:os.Processors},"minecraft:geode":{blocks:is.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:is.ListNode(r("block_state")),cannot_replace:i({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:i({validator:"resource",params:{pool:"$tag/block"}})}),layers:is.ObjectNode({filling:is.Opt(is.NumberNode({min:.01,max:50})),inner_layer:is.Opt(is.NumberNode({min:.01,max:50})),middle_layer:is.Opt(is.NumberNode({min:.01,max:50})),outer_layer:is.Opt(is.NumberNode({min:.01,max:50}))}),crack:is.ObjectNode({generate_crack_chance:is.Opt(is.NumberNode({min:0,max:1})),base_crack_size:is.Opt(is.NumberNode({min:0,max:5})),crack_point_offset:is.Opt(is.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:is.Opt(is.NumberNode({min:0,max:1})),use_potential_placements_chance:is.Opt(is.NumberNode({min:0,max:1})),use_alternate_layer0_chance:is.Opt(is.NumberNode({min:0,max:1})),placements_require_layer0_alternate:is.Opt(is.BooleanNode()),outer_wall_distance:is.Opt(ns.IntProvider({min:1,max:20})),distribution_points:is.Opt(ns.IntProvider({min:1,max:20})),point_offset:is.Opt(ns.IntProvider({min:0,max:10})),min_gen_offset:is.Opt(is.NumberNode({integer:!0})),max_gen_offset:is.Opt(is.NumberNode({integer:!0})),invalid_blocks_threshold:is.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:is.Opt(is.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:is.Opt(is.NumberNode({min:0,max:1})),can_place_on_floor:is.Opt(is.BooleanNode()),can_place_on_ceiling:is.Opt(is.BooleanNode()),can_place_on_wall:is.Opt(is.BooleanNode()),can_be_placed_on:is.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:is.Opt(is.BooleanNode())},"minecraft:huge_red_mushroom":d,"minecraft:ice_patch":l,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{fluid:r("block_state_provider"),barrier:r("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:is.Opt(is.NumberNode({integer:!0,min:1,max:512})),column_radius:ns.IntProvider({min:0,max:60}),height_scale:ns.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:is.NumberNode({min:0,max:1}),stalactite_bluntness:ns.FloatProvider({min:.1,max:10}),stalagmite_bluntness:ns.FloatProvider({min:.1,max:10}),wind_speed:ns.FloatProvider({min:0,max:2}),min_radius_for_wind:is.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:is.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider"),spread_width:is.NumberNode({integer:!0,min:1}),spread_height:is.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:ns.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":p,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:is.Opt(is.NumberNode({min:0,max:1})),chance_of_directional_spread:is.Opt(is.NumberNode({min:0,max:1})),chance_of_spread_radius2:is.Opt(is.NumberNode({min:0,max:1})),chance_of_spread_radius3:is.Opt(is.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:is.ListNode(is.ObjectNode({chance:is.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:is.ListNode(u)},"minecraft:root_system":{required_vertical_space_for_tree:is.NumberNode({integer:!0,min:1,max:64}),root_radius:is.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:is.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:is.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:is.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:is.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:is.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:is.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),allowed_tree_position:r("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":p,"minecraft:sea_pickle":{count:ns.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:is.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:is.ListNode(o)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:is.NumberNode({integer:!0}),hole_count:is.NumberNode({integer:!0}),requires_block_below:is.BooleanNode(),valid_blocks:is.ListNode(i({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:is.Opt(is.BooleanNode()),force_dirt:is.Opt(is.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:is.NumberNode({integer:!0,min:0,max:32}),height_rand_a:is.NumberNode({integer:!0,min:0,max:24}),height_rand_b:is.NumberNode({integer:!0,min:0,max:24}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:bending_trunk_placer":{bend_length:ns.IntProvider({min:1,max:64}),min_height_for_leaves:is.Opt(is.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:ns.IntProvider({min:0,max:16}),offset:ns.IntProvider({min:0,max:16}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:blob_foliage_placer":{height:is.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:is.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:is.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:is.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:ns.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:ns.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:ns.IntProvider({min:1,max:512}),leaf_placement_attempts:is.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:ns.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:is.ListNode(is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:is.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:is.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:is.NumberNode({integer:!0,min:1}),spread_height:is.NumberNode({integer:!0,min:1}),max_height:is.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:is.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:is.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:is.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":m,"minecraft:waterlogged_vegetation_patch":m}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",is.Mod(is.ObjectNode({feature:n,placement:is.ListNode(r("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",is.Mod(is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:is.Opt(is.NumberNode({min:0,max:80})),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:two_layers_feature_size":{limit:is.Opt(is.NumberNode({integer:!0,min:0,max:81})),lower_size:is.Opt(is.NumberNode({integer:!0,min:0,max:16})),upper_size:is.Opt(is.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:is.Opt(is.NumberNode({integer:!0,min:0,max:80})),upper_limit:is.Opt(is.NumberNode({integer:!0,min:0,max:80})),lower_size:is.Opt(is.NumberNode({integer:!0,min:0,max:16})),middle_size:is.Opt(is.NumberNode({integer:!0,min:0,max:16})),upper_size:is.Opt(is.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const _={seed:is.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:is.Mod(is.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",is.Mod(is.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:dual_noise_provider":c(s({},_),{variety:ns.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:is.Mod(is.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:is.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":c(s({},_),{threshold:is.NumberNode({min:-1,max:1}),high_chance:is.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:is.ListNode(r("block_state")),high_states:is.ListNode(r("block_state"))}),"minecraft:noise_provider":c(s({},_),{states:is.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:ns.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:is.ListNode(is.Mod(is.ObjectNode({weight:is.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const h={offset:is.Opt(is.ListNode(is.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",is.Mod(is.ObjectNode({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[is.Switch]:[{push:"type"}],[is.Case]:{"minecraft:all_of":{predicates:is.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:is.ListNode(r("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},h),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":s({},h),"minecraft:matching_block_tag":c(s({},h),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},h),{blocks:is.ListNode(i({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},h),{fluids:is.ListNode(i({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:r("block_predicate_worldgen")},"minecraft:would_survive":c(s({},h),{state:r("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initNoiseSettingsSchemas=void 0;const ss=Le,cs=ga;as.initNoiseSettingsSchemas=function(e,t){const r=ss.Reference.bind(void 0,e),i=ss.StringNode.bind(void 0,t);e.register("noise_settings",ss.Mod(ss.ObjectNode({sea_level:ss.NumberNode({integer:!0}),disable_mob_generation:ss.BooleanNode(),noise_caves_enabled:ss.BooleanNode(),noodle_caves_enabled:ss.BooleanNode(),aquifers_enabled:ss.BooleanNode(),ore_veins_enabled:ss.BooleanNode(),legacy_random_source:ss.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:ss.ObjectNode({min_y:ss.NumberNode({integer:!0,min:-2048,max:2047}),height:ss.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ss.NumberNode({integer:!0}),size_vertical:ss.NumberNode({integer:!0}),island_noise_override:ss.Opt(ss.BooleanNode()),amplified:ss.Opt(ss.BooleanNode()),large_biomes:ss.Opt(ss.BooleanNode()),sampling:ss.ObjectNode({xz_scale:ss.NumberNode(),y_scale:ss.NumberNode(),xz_factor:ss.NumberNode(),y_factor:ss.NumberNode()}),bottom_slide:r("noise_slider"),top_slide:r("noise_slider"),terrain_shaper:r("terrain_shaper")}),surface_rule:r("material_rule"),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>cs.DefaultNoiseSettings,validate:(t,r,i,n)=>{var o,a,s,c;return(null===(o=null==(r=e.validate(t,r,i,n))?void 0:r.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==r?void 0:r.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("noise_slider",ss.ObjectNode({target:ss.NumberNode(),size:ss.NumberNode({integer:!0,min:0}),offset:ss.NumberNode({integer:!0})})),e.register("generator_structures",ss.ObjectNode({stronghold:ss.Opt(ss.ObjectNode({distance:ss.NumberNode({integer:!0,min:0,max:1023}),spread:ss.NumberNode({integer:!0,min:0,max:1023}),count:ss.NumberNode({integer:!0,min:1,max:4095})})),structures:ss.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ss.Mod(ss.ObjectNode({spacing:ss.NumberNode({integer:!0,min:0,max:4096}),separation:ss.Mod(ss.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,i,n)=>(t.pop().push("spacing").get()<=r&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,r,i,n))}))),salt:ss.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ss.Mod(ss.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:ss.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ss.Mod(ss.ObjectNode({offset:r("terrain_spline"),factor:r("terrain_spline"),jaggedness:r("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ss.Mod(ss.ChoiceNode([{type:"number",node:ss.NumberNode()},{type:"object",node:ss.ObjectNode({coordinate:ss.Mod(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ss.ListNode(ss.ObjectNode({location:ss.NumberNode(),derivative:ss.NumberNode(),value:r("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ls={};Object.defineProperty(ls,"__esModule",{value:!0}),ls.initStructureFeatureSchemas=void 0;const ds=Le;ls.initStructureFeatureSchemas=function(e,t){const r=ds.StringNode.bind(void 0,t),i=ds.Reference.bind(void 0,e),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ds.NumberNode({integer:!0})};e.register("configured_structure_feature",ds.Mod(ds.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ds.ObjectNode({[ds.Switch]:["pop",{push:"type"}],[ds.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:ds.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ds.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ds.NumberNode({min:0,max:1}),cluster_probability:ds.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:ds.Opt(ds.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var us={};Object.defineProperty(us,"__esModule",{value:!0}),us.initSurfaceRuleSchemas=void 0;const ps=Le;us.initSurfaceRuleSchemas=function(e,t){const r=ps.StringNode.bind(void 0,t),i=ps.Reference.bind(void 0,e);e.register("material_rule",ps.Mod(ps.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_rule"}}),[ps.Switch]:[{push:"type"}],[ps.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:ps.ListNode(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",ps.Mod(ps.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_condition"}}),[ps.Switch]:[{push:"type"}],[ps.Case]:{"minecraft:biome":{biome_is:ps.ListNode(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:r({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:ps.NumberNode(),max_threshold:ps.NumberNode()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:ps.NumberNode({integer:!0}),surface_type:r({enum:"cave_surface"}),add_surface_depth:ps.BooleanNode(),add_surface_secondary_depth:ps.BooleanNode()},"minecraft:vertical_gradient":{random_name:r(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:ps.NumberNode({integer:!0}),surface_depth_multiplier:ps.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:ps.BooleanNode()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:ps.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:ps.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ms={};Object.defineProperty(ms,"__esModule",{value:!0}),ms.initTemplatePoolSchemas=void 0;const _s=Le,hs=ts;ms.initTemplatePoolSchemas=function(e,t){const r=_s.Reference.bind(void 0,e),i=_s.StringNode.bind(void 0,t);e.register("template_pool",_s.Mod(_s.ObjectNode({fallback:i(),elements:_s.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",_s.Mod(_s.ObjectNode({weight:_s.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",_s.Mod(_s.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[_s.Switch]:[{push:"element_type"}],[_s.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:hs.Processors},"minecraft:list_pool_element":{elements:_s.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:hs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initWorldgenSchemas=void 0;const fs=Ha,gs=Za,bs=Ya,ys=es,vs=as,Ns=ts,xs=ls,ws=us,ks=ms;Ja.initWorldgenSchemas=function(e,t){Ns.initProcessorListSchemas(e,t),fs.initBiomeSchemas(e,t),gs.initCarverSchemas(e,t),bs.initDecoratorSchemas(e,t),ys.initFeatureSchemas(e,t),vs.initNoiseSettingsSchemas(e,t),xs.initStructureFeatureSchemas(e,t),ws.initSurfaceRuleSchemas(e,t),ks.initTemplatePoolSchemas(e,t)};var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.initWorldSettingsSchemas=void 0;const Ss=Le;Os.initWorldSettingsSchemas=function(e,t){const r=Ss.Reference.bind(void 0,e),i=Ss.StringNode.bind(void 0,t);e.register("world_settings",Ss.Mod(Ss.ObjectNode({generate_features:Ss.BooleanNode(),bonus_chest:Ss.BooleanNode(),seed:Ss.NumberNode({integer:!0}),dimensions:Ss.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(sa,"__esModule",{value:!0}),sa.initSchemas=void 0;const Ds=ca,As=da,Cs=ga,Es=ba,js=Na,Fs=ka,Bs=Da,Ms=Ea,Ts=Ta,Ls=Pa,Ps=Ra,Is=Ua,Rs=qa,zs=Ja,Us=Os;sa.initSchemas=function(e,t){Cs.initCommonSchemas(e,t),Ds.initAdvancementSchemas(e,t),As.initAssetsSchemas(e,t),Es.initConditionSchemas(e,t),Fs.initDimensionTypeSchemas(e,t),js.initDimensionSchemas(e,t),Bs.initItemModifierSchemas(e,t),Ms.initLootTableSchemas(e,t),Ts.initPackMcmetaSchemas(e,t),Ls.initPredicatesSchemas(e,t),Ps.initRecipeSchemas(e,t),Is.initTagsSchemas(e,t),Rs.initTextComponentSchemas(e,t),zs.initWorldgenSchemas(e,t),Us.initWorldSettingsSchemas(e,t)};var $s=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),qs=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Xs=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&$s(t,e,r);return qs(t,e),t};Object.defineProperty(oa,"__esModule",{value:!0});var Js=oa.getSchemas=oa.getCollections=void 0;const Hs=Le,Ws=aa,Zs=sa;var Gs=oa.lootContext=Xs(ja);var Ks=oa.getCollections=function(){const e=new Hs.CollectionRegistry;return Ws.initCollections(e),e};Js=oa.getSchemas=function(e){const t=new Hs.SchemaRegistry;return Zs.initSchemas(t,e),t};var Ys=Object.freeze(Object.assign(Object.create(null),oa,{[Symbol.toStringTag]:"Module",get getSchemas(){return Js},get getCollections(){return Ks},lootContext:Gs,default:oa})),Vs={},Qs={};Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.initCollections=void 0,Qs.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var ec={},tc={};Object.defineProperty(tc,"__esModule",{value:!0}),tc.initAdvancementSchemas=void 0;const rc=Le;tc.initAdvancementSchemas=function(e,t){const r=rc.Reference.bind(void 0,e),i=rc.StringNode.bind(void 0,t),n=rc.ChoiceNode([{type:"object",node:rc.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:rc.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",rc.Mod(rc.ObjectNode({display:rc.Opt(rc.Mod(rc.ObjectNode({icon:rc.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),nbt:rc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:rc.Opt(i()),frame:rc.Opt(i({enum:["task","challenge","goal"]})),show_toast:rc.Opt(rc.BooleanNode()),announce_to_chat:rc.Opt(rc.BooleanNode()),hidden:rc.Opt(rc.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:rc.Opt(i({validator:"resource",params:{pool:"$advancement"}})),criteria:rc.MapNode(i(),r("advancement_criteria")),requirements:rc.Opt(rc.ListNode(rc.ListNode(i()))),rewards:rc.Opt(rc.ObjectNode({function:rc.Opt(i({validator:"resource",params:{pool:"$function"}})),loot:rc.Opt(rc.ListNode(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:rc.Opt(rc.ListNode(i({validator:"resource",params:{pool:"$recipe"}}))),experience:rc.Opt(rc.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",rc.ObjectNode({trigger:i({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:rc.Opt(rc.ObjectNode({player:rc.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[rc.Switch]:["pop",{push:"trigger"}],[rc.Case]:{"minecraft:bee_nest_destroyed":{block:rc.Opt(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:rc.Opt(rc.NumberNode({integer:!0})),item:rc.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:rc.Opt(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:rc.Opt(i({validator:"resource",params:{pool:"$dimension"}})),to:rc.Opt(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:rc.Opt(rc.ListNode(n))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:rc.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:rc.Opt(rc.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),rc.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:rc.Opt(n)},"minecraft:enter_block":{block:rc.Opt(i({validator:"resource",params:{pool:"block"}})),state:rc.Opt(rc.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:rc.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:rc.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:rc.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:rc.Opt(r("location_predicate")),distance:rc.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:rc.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:rc.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:rc.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:rc.Opt(rc.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:rc.Opt(rc.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:rc.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:rc.Opt(r("item_predicate")),location:rc.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:rc.Opt(rc.ListNode(n))},"minecraft:levitation":{distance:rc.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:n,bystander:n},"minecraft:location":{location:rc.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:rc.Opt(r("location_predicate")),distance:rc.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:rc.Opt(i({validator:"resource",params:{pool:"block"}})),state:rc.Opt(rc.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:rc.Opt(r("item_predicate")),location:rc.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:rc.Opt(r("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:rc.Opt(r("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:rc.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:rc.Opt(r("location_predicate")),distance:rc.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:rc.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:rc.Opt(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:rc.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:rc.Opt(r("entity_predicate")),item:rc.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:rc.Opt(r("float_bounds"))},"minecraft:used_totem":{item:rc.Opt(r("item_predicate"))},"minecraft:using_item":{item:rc.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:rc.Opt(r("entity_predicate")),item:rc.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:rc.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var ic={},nc={};Object.defineProperty(nc,"__esModule",{value:!0}),nc.initModelSchemas=void 0;const oc=Le;nc.initModelSchemas=function(e,t){oc.Reference.bind(void 0,e);const r=oc.StringNode.bind(void 0,t),i=(e,t,r)=>oc.ListNode(oc.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),n=oc.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",oc.Mod(oc.ObjectNode({parent:oc.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:oc.Opt(oc.BooleanNode()),gui_light:oc.Opt(r({enum:"gui_light"})),textures:oc.Opt(oc.MapNode(r(),n)),elements:oc.Opt(oc.ListNode(oc.ObjectNode({from:i(3,-16,32),to:i(3,-16,32),rotation:oc.Opt(oc.ObjectNode({origin:i(3),axis:r({enum:"axis"}),angle:oc.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:oc.Opt(oc.BooleanNode())})),shade:oc.Opt(oc.BooleanNode()),faces:oc.MapNode(r({enum:"direction"}),oc.ObjectNode({texture:n,uv:oc.Opt(i(4)),cullface:oc.Opt(r({enum:"direction"})),rotation:oc.Opt(oc.NumberNode({integer:!0})),tintindex:oc.Opt(oc.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:oc.Opt(oc.MapNode(r({enum:"display_position"}),oc.ObjectNode({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:oc.Opt(oc.ListNode(oc.ObjectNode({predicate:oc.MapNode(r({enum:"item_model_predicates"}),oc.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initBlockDefinitionSchemas=void 0;const sc=Le;ac.initBlockDefinitionSchemas=function(e,t){const r=sc.Reference.bind(void 0,e),i=sc.StringNode.bind(void 0,t);e.register("block_definition",sc.Mod(sc.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:sc.ObjectNode({variants:sc.MapNode(i(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:sc.ObjectNode({multipart:sc.ListNode(sc.ObjectNode({when:sc.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const n={model:i({validator:"resource",params:{pool:"$model"}}),x:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),y:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:sc.Opt(sc.BooleanNode())};e.register("model_variant",sc.ChoiceNode([{type:"object",node:sc.ObjectNode(n),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:sc.ListNode(sc.ObjectNode(c(s({},n),{weight:sc.Opt(sc.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",sc.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:sc.MapNode(i(),i()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:sc.ObjectNode({OR:sc.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(ic,"__esModule",{value:!0}),ic.initAssetsSchemas=void 0;const cc=nc,lc=ac;ic.initAssetsSchemas=function(e,t){lc.initBlockDefinitionSchemas(e,t),cc.initModelSchemas(e,t)};var dc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Le;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},e.initCommonSchemas=function(r,i){const n=t.StringNode.bind(void 0,i),o=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));r.register("int_bounds",a(!0)),r.register("float_bounds",a()),r.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,i,o,a,c,l)=>{let d={};a&&Object.keys(l[a]).forEach((e=>{d[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const u=t.ObjectNode(s({type:t.Mod(t.Opt(n({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},d),{context:c,disableSwitchContext:!0}),p=[{type:r,node:l[o][i]}];return a&&p.push({type:"object",priority:-1,node:u}),Object.keys(l).forEach((e=>{p.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const i=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==i?void 0:i.length)||1===(null==i?void 0:i.length)&&"type"===(null==i?void 0:i[0]))},node:u,change:t=>({type:e})})})),t.ChoiceNode(p,{context:c,choiceContext:`${c}.type`})};r.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:n({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(n({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(n({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),r.register("int_provider",e.IntProvider()),r.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,i,n;return{[e]:null!==(n=null!==(i=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==i?i:t.below_top)&&void 0!==n?n:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),r.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(n({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=n({enum:"copy_source"}),a=n({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(n({enum:"map_feature"})),decoration:t.Opt(n({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(n({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return i.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}}})}}(dc);var uc={};Object.defineProperty(uc,"__esModule",{value:!0}),uc.initConditionSchemas=void 0;const pc=Le,mc=dc;uc.initConditionSchemas=function(e,t){const r=pc.Reference.bind(void 0,e),i=pc.StringNode.bind(void 0,t);e.register("predicate",pc.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",pc.Mod(pc.ObjectNode({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[pc.Switch]:[{push:"condition"}],[pc.Case]:mc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var _c={};Object.defineProperty(_c,"__esModule",{value:!0}),_c.initDimensionSchemas=void 0;const hc=Le,fc=dc;_c.initDimensionSchemas=function(e,t){const r=hc.Reference.bind(void 0,e),i=hc.StringNode.bind(void 0,t);e.register("dimension",hc.Mod(hc.ObjectNode({type:fc.DimensionTypePresets(r("dimension_type")),generator:hc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[hc.Switch]:[{push:"type"}],[hc.Case]:{"minecraft:noise":{seed:hc.NumberNode({integer:!0}),settings:fc.NoiseSettingsPresets(r("noise_settings")),biome_source:hc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[hc.Switch]:[{push:"type"}],[hc.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:hc.Opt(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:hc.Mod(hc.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:hc.Opt(hc.NumberNode({integer:!0,min:0,max:62})),biomes:fc.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:hc.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:hc.ObjectNode({biome:hc.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:hc.Opt(hc.BooleanNode()),features:hc.Opt(hc.BooleanNode()),layers:hc.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=hc.ChoiceNode([{type:"number",node:hc.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:hc.ListNode(hc.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",hc.Mod(hc.ObjectNode({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:hc.ObjectNode({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:hc.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var gc={};Object.defineProperty(gc,"__esModule",{value:!0}),gc.initDimensionTypeSchemas=void 0;const bc=Le,yc=dc;gc.initDimensionTypeSchemas=function(e,t){const r=bc.StringNode.bind(void 0,t);e.register("dimension_type",bc.Mod(bc.ObjectNode({ultrawarm:bc.BooleanNode(),natural:bc.BooleanNode(),piglin_safe:bc.BooleanNode(),respawn_anchor_works:bc.BooleanNode(),bed_works:bc.BooleanNode(),has_raids:bc.BooleanNode(),has_skylight:bc.BooleanNode(),has_ceiling:bc.BooleanNode(),coordinate_scale:bc.NumberNode({min:1e-5,max:3e7}),ambient_light:bc.NumberNode(),fixed_time:bc.Opt(bc.NumberNode({integer:!0})),logical_height:bc.NumberNode({integer:!0,min:0,max:4096}),effects:bc.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:bc.NumberNode({integer:!0,min:-2048,max:2047}),height:bc.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>yc.DefaultDimensionType,validate:(t,r,i,n)=>((null==(r=e.validate(t,r,i,n))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&i.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&i.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&i.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&i.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var vc={};Object.defineProperty(vc,"__esModule",{value:!0}),vc.initItemModifierSchemas=void 0;const Nc=Le,xc=dc;vc.initItemModifierSchemas=function(e,t){const r=Nc.Reference.bind(void 0,e),i=Nc.StringNode.bind(void 0,t);e.register("item_modifier",Nc.ObjectOrList(r("function"),{choiceContext:"function"}));const n={conditions:Nc.Opt(Nc.ListNode(r("condition")))};e.register("function",Nc.Mod(Nc.ObjectNode({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[Nc.Switch]:[{push:"function"}],[Nc.Case]:xc.FunctionCases(n)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var wc={},kc={};Object.defineProperty(kc,"__esModule",{value:!0}),kc.LootFunctions=kc.LootConditions=kc.LootCopySources=kc.LootEntitySources=kc.LootTableTypes=void 0,kc.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),kc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),kc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),kc.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),kc.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(wc,"__esModule",{value:!0}),wc.initLootTableSchemas=void 0;const Oc=Le,Sc=kc,Dc=dc;wc.initLootTableSchemas=function(e,t){const r=Oc.Reference.bind(void 0,e),i=Oc.StringNode.bind(void 0,t),n={conditions:Oc.Opt(Oc.ListNode(r("loot_condition")))},o=s({functions:Oc.Opt(Oc.ListNode(r("loot_function")))},n);function a(e,r,i){const n=[],o=i=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>i.includes(e)))}));for(const[t,{allows:a,requires:s}]of Sc.LootTableTypes){const e=[...a,...s];n.push({match:e=>e.getModel().get(new Oc.Path(["type"]))===t,node:i(o(e))})}return n.push({match:e=>!0,node:i(r)}),Oc.SwitchNode(n)}const c=a(Sc.LootConditions,"loot_condition_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Sc.LootFunctions,"loot_function_type",(e=>i({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Sc.LootEntitySources,"entity_source",(e=>i({enum:e}))),u=a(Sc.LootCopySources,"copy_source",(e=>i({enum:e})));e.register("loot_table",Oc.Mod(Oc.ObjectNode({type:Oc.Opt(i({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Oc.Opt(Oc.ListNode(Oc.Mod(Oc.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:Oc.Opt(r("number_provider")),entries:Oc.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Oc.Opt(Oc.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Oc.Mod(Oc.ObjectNode({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Oc.Opt(Oc.Mod(Oc.NumberNode({integer:!0,min:1}),p)),quality:Oc.Opt(Oc.Mod(Oc.NumberNode({integer:!0}),p)),[Oc.Switch]:[{push:"type"}],[Oc.Case]:{"minecraft:alternatives":s({children:Oc.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:i()},o),"minecraft:group":s({children:Oc.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:i({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:i({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Oc.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:Oc.Opt(Oc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Oc.Mod(Oc.ObjectNode({function:l,[Oc.Switch]:[{push:"function"}],[Oc.Case]:Dc.FunctionCases(n,u,d)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Oc.Mod(Oc.ObjectNode({condition:c,[Oc.Switch]:[{push:"condition"}],[Oc.Case]:Dc.ConditionCases(d)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Oc.Mod(Oc.ObjectNode({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:r("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),slot:Oc.StringOrList(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ac={};Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.initPackMcmetaSchemas=void 0;const Cc=Le;Ac.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Cc.Mod(Cc.ObjectNode({pack:Cc.Mod(Cc.ObjectNode({pack_format:Cc.Mod(Cc.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Cc.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ec={};Object.defineProperty(Ec,"__esModule",{value:!0}),Ec.initPredicatesSchemas=void 0;const jc=Le;Ec.initPredicatesSchemas=function(e,t){const r=jc.Reference.bind(void 0,e),i=jc.StringNode.bind(void 0,t),n=jc.ChoiceNode([{type:"string",node:i(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:jc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:jc.ObjectNode({min:jc.Opt(jc.NumberNode({integer:!0})),max:jc.Opt(jc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:jc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",jc.ObjectNode({items:jc.Opt(jc.ListNode(i({validator:"resource",params:{pool:"item"}}))),tag:jc.Opt(i({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:jc.Opt(i({validator:"resource",params:{pool:"potion"}})),nbt:jc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:jc.Opt(jc.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",jc.ObjectNode({enchantment:jc.Opt(i({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",jc.ObjectNode({blocks:jc.Opt(jc.ListNode(i({validator:"resource",params:{pool:"block"}}))),tag:jc.Opt(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:jc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:jc.Opt(jc.MapNode(i(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",jc.ObjectNode({fluid:jc.Opt(i({validator:"resource",params:{pool:"fluid"}})),tag:jc.Opt(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:jc.Opt(jc.MapNode(i(),n))},{context:"fluid"})),e.register("location_predicate",jc.ObjectNode({position:jc.Opt(jc.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:jc.Opt(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:jc.Opt(i({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:jc.Opt(i({validator:"resource",params:{pool:"$dimension"}})),light:jc.Opt(jc.ObjectNode({light:r("int_bounds")})),smokey:jc.Opt(jc.BooleanNode()),block:jc.Opt(r("block_predicate")),fluid:jc.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",jc.ObjectNode({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:r("int_bounds"),[jc.Switch]:[{push:"type"}],[jc.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",jc.ObjectNode({gamemode:jc.Opt(i({enum:"gamemode"})),level:r("int_bounds"),advancements:jc.Opt(jc.MapNode(i({validator:"resource",params:{pool:"$advancement"}}),jc.ChoiceNode([{type:"boolean",node:jc.BooleanNode(),change:e=>!0},{type:"object",node:jc.MapNode(i(),jc.BooleanNode())}]))),recipes:jc.Opt(jc.MapNode(i({validator:"resource",params:{pool:"$recipe"}}),jc.BooleanNode())),stats:jc.Opt(jc.ListNode(r("statistic_predicate"))),looking_at:jc.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",jc.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:jc.Opt(jc.BooleanNode()),visible:jc.Opt(jc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",jc.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",jc.ObjectNode({type:jc.Opt(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:jc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:jc.Opt(i({validator:"team"})),location:jc.Opt(r("location_predicate")),stepping_on:jc.Opt(r("location_predicate")),distance:jc.Opt(r("distance_predicate")),flags:jc.Opt(jc.ObjectNode({is_on_fire:jc.Opt(jc.BooleanNode()),is_sneaking:jc.Opt(jc.BooleanNode()),is_sprinting:jc.Opt(jc.BooleanNode()),is_swimming:jc.Opt(jc.BooleanNode()),is_baby:jc.Opt(jc.BooleanNode())})),equipment:jc.Opt(jc.MapNode(i({enum:"slot"}),r("item_predicate"))),player:jc.Opt(r("player_predicate")),vehicle:jc.Opt(r("entity_predicate")),passenger:jc.Opt(r("entity_predicate")),targeted_entity:jc.Opt(r("entity_predicate")),lightning_bolt:jc.Opt(jc.ObjectNode({blocks_set_on_fire:jc.Opt(r("int_bounds")),entity_struck:jc.Opt(r("entity_predicate"))})),fishing_hook:jc.Opt(jc.ObjectNode({in_open_water:jc.Opt(jc.BooleanNode())})),effects:jc.Opt(jc.MapNode(i({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",jc.ObjectNode({is_explosion:jc.Opt(jc.BooleanNode()),is_fire:jc.Opt(jc.BooleanNode()),is_magic:jc.Opt(jc.BooleanNode()),is_projectile:jc.Opt(jc.BooleanNode()),is_lightning:jc.Opt(jc.BooleanNode()),bypasses_armor:jc.Opt(jc.BooleanNode()),bypasses_invulnerability:jc.Opt(jc.BooleanNode()),bypasses_magic:jc.Opt(jc.BooleanNode()),source_entity:jc.Opt(r("entity_predicate")),direct_entity:jc.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",jc.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:jc.Opt(jc.BooleanNode()),source_entity:jc.Opt(r("entity_predicate")),type:jc.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Fc={};Object.defineProperty(Fc,"__esModule",{value:!0}),Fc.initRecipeSchemas=void 0;const Bc=Le;Fc.initRecipeSchemas=function(e,t){const r=Bc.Reference.bind(void 0,e),i=Bc.StringNode.bind(void 0,t);e.register("recipe",Bc.Mod(Bc.ObjectNode({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[Bc.Switch]:[{push:"type"}],[Bc.Case]:{"minecraft:crafting_shaped":{group:Bc.Opt(i({enum:"recipe_group",additional:!0})),pattern:Bc.ListNode(i()),key:Bc.MapNode(i(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Bc.Opt(i()),ingredients:Bc.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Bc.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Bc.Opt(Bc.NumberNode()),cookingtime:Bc.Opt(Bc.Mod(Bc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Bc.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Bc.Opt(Bc.NumberNode()),cookingtime:Bc.Opt(Bc.Mod(Bc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Bc.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Bc.Opt(Bc.NumberNode()),cookingtime:Bc.Opt(Bc.Mod(Bc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Bc.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:Bc.Opt(Bc.NumberNode()),cookingtime:Bc.Opt(Bc.Mod(Bc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Bc.Opt(i()),ingredient:r("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:Bc.NumberNode({integer:!0})},"minecraft:smithing":{group:Bc.Opt(i()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Bc.Mod(Bc.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Bc.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Bc.Mod(Bc.ObjectNode({item:Bc.Opt(i({validator:"resource",params:{pool:"item"}})),tag:Bc.Opt(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Bc.Mod(Bc.ObjectNode({item:i({validator:"resource",params:{pool:"item"}}),count:Bc.Opt(Bc.Mod(Bc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Mc={};Object.defineProperty(Mc,"__esModule",{value:!0}),Mc.initTagsSchemas=void 0;const Tc=Le;Mc.initTagsSchemas=function(e,t){const r=Tc.StringNode.bind(void 0,t),i=e=>Tc.Mod(Tc.ObjectNode({replace:Tc.Opt(Tc.BooleanNode()),values:Tc.ListNode(Tc.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Tc.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Tc.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",i("block")),e.register("entity_type_tag",i("entity_type")),e.register("fluid_tag",i("fluid")),e.register("function_tag",i("$function")),e.register("game_event_tag",i("game_event")),e.register("item_tag",i("item"))};var Lc={};Object.defineProperty(Lc,"__esModule",{value:!0}),Lc.initTextComponentSchemas=void 0;const Pc=Le;Lc.initTextComponentSchemas=function(e,t){const r=Pc.Reference.bind(void 0,e),i=Pc.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Pc.Mod(Pc.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:i(),change:n},{type:"number",node:Pc.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Pc.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Pc.Opt(i()),font:Pc.Opt(i()),bold:Pc.Opt(Pc.BooleanNode()),italic:Pc.Opt(Pc.BooleanNode()),underlined:Pc.Opt(Pc.BooleanNode()),strikethrough:Pc.Opt(Pc.BooleanNode()),obfuscated:Pc.Opt(Pc.BooleanNode()),insertion:Pc.Opt(i()),clickEvent:Pc.Opt(Pc.ObjectNode({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Pc.Switch]:[{push:"action"}],[Pc.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Pc.Opt(Pc.ObjectNode({action:i({enum:["show_text","show_item","show_entity"]}),[Pc.Switch]:[{push:"action"}],[Pc.Case]:{show_text:{value:Pc.Opt(r("text_component")),contents:Pc.Opt(r("text_component"))},show_item:{value:Pc.Opt(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Pc.Opt(Pc.ObjectNode({id:i({validator:"resource",params:{pool:"item"}}),count:Pc.Opt(Pc.NumberNode({integer:!0})),tag:Pc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Pc.Opt(Pc.ObjectNode({name:Pc.Opt(i()),type:Pc.Opt(i()),id:Pc.Opt(i())})),contents:Pc.Opt(Pc.Mod(Pc.ObjectNode({name:Pc.Opt(r("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Pc.Opt(r("text_component_list"))};e.register("text_component_object",Pc.Mod(Pc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Pc.ObjectNode(s({text:i()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Pc.ObjectNode(s({translate:i(),with:Pc.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Pc.ObjectNode(s({score:Pc.ObjectNode({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:Pc.Opt(i())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Pc.ObjectNode(s({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Pc.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Pc.ObjectNode(s({keybind:i({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Pc.ObjectNode(s({nbt:i({validator:"nbt_path"}),block:Pc.Opt(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Pc.Opt(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Pc.Opt(i({validator:"resource",params:{pool:"$storage"}})),interpret:Pc.Opt(Pc.BooleanNode()),separator:Pc.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Pc.Mod(Pc.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ic={},Rc={};Object.defineProperty(Rc,"__esModule",{value:!0}),Rc.initBiomeSchemas=void 0;const zc=Le,Uc=dc;Rc.initBiomeSchemas=function(e,t){const r=zc.StringNode.bind(void 0,t);e.register("biome",zc.Mod(zc.ObjectNode({temperature:zc.NumberNode(),downfall:zc.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:zc.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),creature_spawn_probability:zc.Opt(zc.NumberNode({min:0,max:1})),effects:zc.ObjectNode({sky_color:zc.NumberNode({color:!0}),fog_color:zc.NumberNode({color:!0}),water_color:zc.NumberNode({color:!0}),water_fog_color:zc.NumberNode({color:!0}),grass_color:zc.Opt(zc.NumberNode({color:!0})),foliage_color:zc.Opt(zc.NumberNode({color:!0})),grass_color_modifier:zc.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:zc.Opt(r()),mood_sound:zc.Opt(zc.ObjectNode({sound:r(),tick_delay:zc.NumberNode({integer:!0}),block_search_extent:zc.NumberNode({integer:!0}),offset:zc.NumberNode()})),additions_sound:zc.Opt(zc.ObjectNode({sound:r(),tick_chance:zc.NumberNode({min:0,max:1})})),music:zc.Opt(zc.ObjectNode({sound:r(),min_delay:zc.NumberNode({integer:!0,min:0}),max_delay:zc.NumberNode({integer:!0,min:0}),replace_current_music:zc.BooleanNode()})),particle:zc.Opt(zc.ObjectNode({options:zc.ObjectNode({type:r()}),probability:zc.NumberNode({min:0,max:1})}))}),spawners:zc.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),zc.Mod(zc.ListNode(zc.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:zc.NumberNode({integer:!0}),minCount:zc.NumberNode({integer:!0}),maxCount:zc.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:zc.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),zc.Mod(zc.ObjectNode({energy_budget:zc.NumberNode(),charge:zc.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:zc.MapNode(r({enum:["air","liquid"]}),zc.Mod(Uc.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:zc.ListNode(zc.Mod(Uc.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initCarverSchemas=void 0;const qc=Le,Xc=dc;$c.initCarverSchemas=function(e,t){const r=qc.Reference.bind(void 0,e),i=qc.StringNode.bind(void 0,t),n={vertical_rotation:Xc.FloatProvider(),shape:qc.ObjectNode({distance_factor:Xc.FloatProvider(),thickness:Xc.FloatProvider(),width_smoothness:qc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Xc.FloatProvider(),vertical_radius_default_factor:qc.NumberNode(),vertical_radius_center_factor:qc.NumberNode()})},o={horizontal_radius_multiplier:Xc.FloatProvider(),vertical_radius_multiplier:Xc.FloatProvider(),floor_level:Xc.FloatProvider({min:-1,max:1})};e.register("configured_carver",qc.Mod(qc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:qc.ObjectNode({probability:qc.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Xc.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:qc.Opt(qc.ObjectNode({debug_mode:qc.Opt(qc.BooleanNode()),air_state:qc.Opt(r("block_state")),water_state:qc.Opt(r("block_state")),lava_state:qc.Opt(r("block_state")),barrier_state:qc.Opt(r("block_state"))})),[qc.Switch]:["pop",{push:"type"}],[qc.Case]:{"minecraft:canyon":n,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Jc={};Object.defineProperty(Jc,"__esModule",{value:!0}),Jc.initDecoratorSchemas=void 0;const Hc=Le,Wc=dc;Jc.initDecoratorSchemas=function(e,t){const r=Hc.Reference.bind(void 0,e),i=Hc.StringNode.bind(void 0,t);e.register("decorator",Hc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Hc.Switch]:[{push:"type"}],[Hc.Case]:{"minecraft:block_predicate_filter":{predicate:r("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Hc.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Wc.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Wc.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Hc.NumberNode(),below_noise:Hc.NumberNode({integer:!0}),above_noise:Hc.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Hc.NumberNode({integer:!0}),noise_factor:Hc.NumberNode(),noise_offset:Hc.Opt(Hc.NumberNode())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:Hc.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen"),allowed_search_condition:Hc.Opt(r("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:r("height_provider")},"minecraft:random_offset":{xz_spread:Wc.IntProvider({min:-16,max:16}),y_spread:Wc.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:Hc.Opt(Hc.NumberNode({integer:!0})),max_inclusive:Hc.Opt(Hc.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Hc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Zc={},Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initProcessorListSchemas=Gc.Processors=void 0;const Kc=Le;Gc.initProcessorListSchemas=function(e,t){const r=Kc.Reference.bind(void 0,e),i=Kc.StringNode.bind(void 0,t);Gc.Processors=Kc.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Kc.Mod(Kc.ObjectNode({processors:Kc.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Kc.Mod(Kc.ObjectNode({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Kc.Switch]:[{push:"processor_type"}],[Kc.Case]:{"minecraft:block_age":{mossiness:Kc.NumberNode()},"minecraft:block_ignore":{blocks:Kc.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Kc.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:Kc.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:Kc.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Kc.Mod(Kc.ObjectNode({position_predicate:Kc.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Kc.Opt(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:Kc.Opt(Kc.NumberNode({min:0,max:255,integer:!0})),max_dist:Kc.Opt(Kc.NumberNode({min:0,max:255,integer:!0})),min_chance:Kc.Opt(Kc.NumberNode({min:0,max:1})),max_chance:Kc.Opt(Kc.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Kc.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[Kc.Switch]:[{push:"predicate_type"}],[Kc.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:i({enum:["x","y","z"]})},n),"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Kc.ObjectNode({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[Kc.Switch]:[{push:"predicate_type"}],[Kc.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:Kc.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Kc.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Zc,"__esModule",{value:!0}),Zc.initFeatureSchemas=void 0;const Yc=Le,Vc=dc,Qc=Gc;Zc.initFeatureSchemas=function(e,t){const r=Yc.Reference.bind(void 0,e),i=Yc.StringNode.bind(void 0,t),n=Yc.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),o=Yc.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:r("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:Yc.Opt(Yc.NumberNode({integer:!0,min:1})),xz_spread:Yc.Opt(Yc.NumberNode({integer:!0,min:0})),y_spread:Yc.Opt(Yc.NumberNode({integer:!0,min:0})),feature:o},l={state:r("block_state"),radius:Vc.IntProvider({min:0,max:8}),half_height:Yc.NumberNode({integer:!0,min:0,max:4}),targets:Yc.ListNode(r("block_state"))},d={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Yc.Opt(Yc.NumberNode({integer:!0}))},u=Yc.ObjectNode({target:r("rule_test"),state:r("block_state")}),p={size:Yc.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Yc.NumberNode({min:0,max:1}),targets:Yc.ListNode(u)},m={surface:i({enum:"cave_surface"}),depth:Vc.IntProvider({min:1,max:128}),vertical_range:Yc.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Yc.NumberNode({min:0,max:1}),extra_edge_column_chance:Yc.NumberNode({min:0,max:1}),vegetation_chance:Yc.NumberNode({min:0,max:1}),xz_radius:Vc.IntProvider(),replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:r("block_state_provider"),vegetation_feature:o};e.register("configured_feature",Yc.Mod(Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:Yc.ObjectNode({[Yc.Switch]:["pop",{push:"type"}],[Yc.Case]:{"minecraft:bamboo":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Vc.IntProvider({min:0,max:3}),height:Vc.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:r("block_predicate_worldgen"),prioritize_tip:Yc.BooleanNode(),layers:Yc.ListNode(Yc.ObjectNode({height:Vc.IntProvider({min:0}),provider:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Vc.IntProvider({min:0,max:16}),rim_size:Vc.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Yc.NumberNode({integer:!0,min:1,max:512}),height:Vc.IntProvider({min:0,max:128}),radius:Vc.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Yc.NumberNode({integer:!0,min:0,max:64}),height_deviation:Yc.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Vc.IntProvider({min:0,max:128}),density:Vc.FloatProvider({min:0,max:2}),wetness:Vc.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Yc.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Yc.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Yc.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Yc.BooleanNode(),exit:Yc.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Yc.Opt(Yc.BooleanNode()),crystal_beam_target:Yc.Opt(r("block_pos")),spikes:Yc.ListNode(Yc.ObjectNode({centerX:Yc.Opt(Yc.NumberNode({integer:!0})),centerZ:Yc.Opt(Yc.NumberNode({integer:!0})),radius:Yc.Opt(Yc.NumberNode({integer:!0})),height:Yc.Opt(Yc.NumberNode({integer:!0})),guarded:Yc.Opt(Yc.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Yc.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Yc.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Yc.ListNode(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Yc.ListNode(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Qc.Processors,overlay_processors:Qc.Processors},"minecraft:geode":{blocks:Yc.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:Yc.ListNode(r("block_state")),cannot_replace:i({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:i({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:Yc.ObjectNode({filling:Yc.Opt(Yc.NumberNode({min:.01,max:50})),inner_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50})),middle_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50})),outer_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50}))}),crack:Yc.ObjectNode({generate_crack_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),base_crack_size:Yc.Opt(Yc.NumberNode({min:0,max:5})),crack_point_offset:Yc.Opt(Yc.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Yc.Opt(Yc.NumberNode({min:0,max:1})),use_potential_placements_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Yc.Opt(Yc.BooleanNode()),outer_wall_distance:Yc.Opt(Vc.IntProvider({min:1,max:20})),distribution_points:Yc.Opt(Vc.IntProvider({min:1,max:20})),point_offset:Yc.Opt(Vc.IntProvider({min:0,max:10})),min_gen_offset:Yc.Opt(Yc.NumberNode({integer:!0})),max_gen_offset:Yc.Opt(Yc.NumberNode({integer:!0})),invalid_blocks_threshold:Yc.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Yc.Opt(Yc.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Yc.Opt(Yc.NumberNode({min:0,max:1})),can_place_on_floor:Yc.Opt(Yc.BooleanNode()),can_place_on_ceiling:Yc.Opt(Yc.BooleanNode()),can_place_on_wall:Yc.Opt(Yc.BooleanNode()),can_be_placed_on:Vc.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:Yc.Opt(Yc.BooleanNode())},"minecraft:huge_red_mushroom":d,"minecraft:ice_patch":l,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{fluid:r("block_state_provider"),barrier:r("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Yc.Opt(Yc.NumberNode({integer:!0,min:1,max:512})),column_radius:Vc.IntProvider({min:0,max:60}),height_scale:Vc.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Yc.NumberNode({min:0,max:1}),stalactite_bluntness:Vc.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Vc.FloatProvider({min:.1,max:10}),wind_speed:Vc.FloatProvider({min:0,max:2}),min_radius_for_wind:Yc.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Yc.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider"),spread_width:Yc.NumberNode({integer:!0,min:1}),spread_height:Yc.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:Vc.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":p,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_directional_spread:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_spread_radius2:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_spread_radius3:Yc.Opt(Yc.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:Yc.ListNode(Yc.ObjectNode({chance:Yc.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:Yc.ListNode(u)},"minecraft:root_system":{required_vertical_space_for_tree:Yc.NumberNode({integer:!0,min:1,max:64}),root_radius:Yc.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Yc.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Yc.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Yc.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Yc.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Yc.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Yc.NumberNode({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),allowed_tree_position:r("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":p,"minecraft:sea_pickle":{count:Vc.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:Vc.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Yc.NumberNode({integer:!0}),hole_count:Yc.NumberNode({integer:!0}),requires_block_below:Yc.BooleanNode(),valid_blocks:Vc.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:Yc.Opt(Yc.BooleanNode()),force_dirt:Yc.Opt(Yc.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Yc.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Yc.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Yc.NumberNode({integer:!0,min:0,max:24}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:bending_trunk_placer":{bend_length:Vc.IntProvider({min:1,max:64}),min_height_for_leaves:Yc.Opt(Yc.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Vc.IntProvider({min:0,max:16}),offset:Vc.IntProvider({min:0,max:16}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:blob_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Vc.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Vc.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Vc.IntProvider({min:1,max:512}),leaf_placement_attempts:Yc.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Vc.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Yc.ListNode(Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Yc.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:Yc.NumberNode({integer:!0,min:1}),spread_height:Yc.NumberNode({integer:!0,min:1}),max_height:Yc.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:Yc.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Yc.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Yc.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":m,"minecraft:waterlogged_vegetation_patch":m}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",Yc.Mod(Yc.ObjectNode({feature:n,placement:Yc.ListNode(r("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",Yc.Mod(Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Yc.Opt(Yc.NumberNode({min:0,max:80})),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:two_layers_feature_size":{limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:81})),lower_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),upper_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:80})),upper_limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:80})),lower_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),middle_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),upper_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const _={seed:Yc.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:Yc.Mod(Yc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",Yc.Mod(Yc.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:dual_noise_provider":c(s({},_),{variety:Vc.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:Yc.Mod(Yc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:Yc.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":c(s({},_),{threshold:Yc.NumberNode({min:-1,max:1}),high_chance:Yc.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:Yc.ListNode(r("block_state")),high_states:Yc.ListNode(r("block_state"))}),"minecraft:noise_provider":c(s({},_),{states:Yc.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:Vc.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:Yc.ListNode(Yc.Mod(Yc.ObjectNode({weight:Yc.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const h={offset:Yc.Opt(Yc.ListNode(Yc.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",Yc.Mod(Yc.ObjectNode({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:all_of":{predicates:Yc.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:Yc.ListNode(r("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},h),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":s({},h),"minecraft:matching_block_tag":c(s({},h),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},h),{blocks:Vc.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},h),{fluids:Vc.Tag({resource:"fluid"})}),"minecraft:not":{predicate:r("block_predicate_worldgen")},"minecraft:would_survive":c(s({},h),{state:r("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var el={};Object.defineProperty(el,"__esModule",{value:!0}),el.initNoiseSettingsSchemas=void 0;const tl=Le,rl=dc;el.initNoiseSettingsSchemas=function(e,t){const r=tl.Reference.bind(void 0,e),i=tl.StringNode.bind(void 0,t);e.register("noise_settings",tl.Mod(tl.ObjectNode({sea_level:tl.NumberNode({integer:!0}),disable_mob_generation:tl.BooleanNode(),noise_caves_enabled:tl.BooleanNode(),noodle_caves_enabled:tl.BooleanNode(),aquifers_enabled:tl.BooleanNode(),ore_veins_enabled:tl.BooleanNode(),legacy_random_source:tl.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:tl.ObjectNode({min_y:tl.NumberNode({integer:!0,min:-2048,max:2047}),height:tl.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:tl.NumberNode({integer:!0}),size_vertical:tl.NumberNode({integer:!0}),island_noise_override:tl.Opt(tl.BooleanNode()),amplified:tl.Opt(tl.BooleanNode()),large_biomes:tl.Opt(tl.BooleanNode()),sampling:tl.ObjectNode({xz_scale:tl.NumberNode(),y_scale:tl.NumberNode(),xz_factor:tl.NumberNode(),y_factor:tl.NumberNode()}),bottom_slide:r("noise_slider"),top_slide:r("noise_slider"),terrain_shaper:r("terrain_shaper")}),surface_rule:r("material_rule"),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>rl.DefaultNoiseSettings,validate:(t,r,i,n)=>{var o,a,s,c;return(null===(o=null==(r=e.validate(t,r,i,n))?void 0:r.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==r?void 0:r.noise)||void 0===a?void 0:a.height)>2047&&i.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&i.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&i.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("noise_slider",tl.ObjectNode({target:tl.NumberNode(),size:tl.NumberNode({integer:!0,min:0}),offset:tl.NumberNode({integer:!0})})),e.register("generator_structures",tl.MapNode(i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),tl.Mod(tl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:concentric_rings":{distance:tl.NumberNode({integer:!0,min:0,max:1023}),spread:tl.NumberNode({integer:!0,min:0,max:1023}),count:tl.NumberNode({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:tl.Opt(i({enum:["linear","triangular"]})),spacing:tl.NumberNode({integer:!0,min:0,max:4096}),separation:tl.Mod(tl.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,i,n)=>(t.pop().push("spacing").get()<=r&&i.add(t,"error.separation_smaller_spacing"),e.validate(t,r,i,n))}))),salt:tl.NumberNode({integer:!0,min:0}),locate_offset:tl.Opt(tl.ListNode(tl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"generator_structure"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:0})}))),e.register("generator_layer",tl.Mod(tl.ObjectNode({block:i({validator:"resource",params:{pool:"block"}}),height:tl.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",tl.Mod(tl.ObjectNode({offset:r("terrain_spline"),factor:r("terrain_spline"),jaggedness:r("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",tl.Mod(tl.ChoiceNode([{type:"number",node:tl.NumberNode()},{type:"object",node:tl.ObjectNode({coordinate:tl.Mod(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:tl.ListNode(tl.ObjectNode({location:tl.NumberNode(),derivative:tl.NumberNode(),value:r("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var il={};Object.defineProperty(il,"__esModule",{value:!0}),il.initStructureFeatureSchemas=void 0;const nl=Le;il.initStructureFeatureSchemas=function(e,t){const r=nl.StringNode.bind(void 0,t),i=nl.Reference.bind(void 0,e),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:nl.NumberNode({integer:!0})};e.register("configured_structure_feature",nl.Mod(nl.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:nl.ObjectNode({[nl.Switch]:["pop",{push:"type"}],[nl.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:nl.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:nl.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:nl.NumberNode({min:0,max:1}),cluster_probability:nl.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:nl.Opt(nl.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var ol={};Object.defineProperty(ol,"__esModule",{value:!0}),ol.initSurfaceRuleSchemas=void 0;const al=Le;ol.initSurfaceRuleSchemas=function(e,t){const r=al.StringNode.bind(void 0,t),i=al.Reference.bind(void 0,e);e.register("material_rule",al.Mod(al.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_rule"}}),[al.Switch]:[{push:"type"}],[al.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:al.ListNode(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",al.Mod(al.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_condition"}}),[al.Switch]:[{push:"type"}],[al.Case]:{"minecraft:biome":{biome_is:al.ListNode(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:r({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:al.NumberNode(),max_threshold:al.NumberNode()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:al.NumberNode({integer:!0}),surface_type:r({enum:"cave_surface"}),add_surface_depth:al.BooleanNode(),secondary_depth_range:al.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:r(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:al.NumberNode({integer:!0}),surface_depth_multiplier:al.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:al.BooleanNode()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:al.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:al.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.initTemplatePoolSchemas=void 0;const cl=Le,ll=Gc;sl.initTemplatePoolSchemas=function(e,t){const r=cl.Reference.bind(void 0,e),i=cl.StringNode.bind(void 0,t);e.register("template_pool",cl.Mod(cl.ObjectNode({fallback:i(),elements:cl.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",cl.Mod(cl.ObjectNode({weight:cl.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",cl.Mod(cl.ObjectNode({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[cl.Switch]:[{push:"element_type"}],[cl.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:ll.Processors},"minecraft:list_pool_element":{elements:cl.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:ll.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initWorldgenSchemas=void 0;const dl=Rc,ul=$c,pl=Jc,ml=Zc,_l=el,hl=Gc,fl=il,gl=ol,bl=sl;Ic.initWorldgenSchemas=function(e,t){hl.initProcessorListSchemas(e,t),dl.initBiomeSchemas(e,t),ul.initCarverSchemas(e,t),pl.initDecoratorSchemas(e,t),ml.initFeatureSchemas(e,t),_l.initNoiseSettingsSchemas(e,t),fl.initStructureFeatureSchemas(e,t),gl.initSurfaceRuleSchemas(e,t),bl.initTemplatePoolSchemas(e,t)};var yl={};Object.defineProperty(yl,"__esModule",{value:!0}),yl.initWorldSettingsSchemas=void 0;const vl=Le;yl.initWorldSettingsSchemas=function(e,t){const r=vl.Reference.bind(void 0,e),i=vl.StringNode.bind(void 0,t);e.register("world_settings",vl.Mod(vl.ObjectNode({generate_features:vl.BooleanNode(),bonus_chest:vl.BooleanNode(),seed:vl.NumberNode({integer:!0}),dimensions:vl.MapNode(i({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ec,"__esModule",{value:!0}),ec.initSchemas=void 0;const Nl=tc,xl=ic,wl=dc,kl=uc,Ol=_c,Sl=gc,Dl=vc,Al=wc,Cl=Ac,El=Ec,jl=Fc,Fl=Mc,Bl=Lc,Ml=Ic,Tl=yl;ec.initSchemas=function(e,t){wl.initCommonSchemas(e,t),Nl.initAdvancementSchemas(e,t),xl.initAssetsSchemas(e,t),kl.initConditionSchemas(e,t),Sl.initDimensionTypeSchemas(e,t),Ol.initDimensionSchemas(e,t),Dl.initItemModifierSchemas(e,t),Al.initLootTableSchemas(e,t),Cl.initPackMcmetaSchemas(e,t),El.initPredicatesSchemas(e,t),jl.initRecipeSchemas(e,t),Fl.initTagsSchemas(e,t),Bl.initTextComponentSchemas(e,t),Ml.initWorldgenSchemas(e,t),Tl.initWorldSettingsSchemas(e,t)};var Ll=Te&&Te.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),Pl=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Il=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&Ll(t,e,r);return Pl(t,e),t};Object.defineProperty(Vs,"__esModule",{value:!0});var Rl=Vs.getSchemas=Vs.getCollections=void 0;const zl=Le,Ul=Qs,$l=ec;var ql=Vs.lootContext=Il(kc);var Xl=Vs.getCollections=function(){const e=new zl.CollectionRegistry;return Ul.initCollections(e),e};Rl=Vs.getSchemas=function(e){const t=new zl.SchemaRegistry;return $l.initSchemas(t,e),t};var Jl=Object.freeze(Object.assign(Object.create(null),Vs,{[Symbol.toStringTag]:"Module",get getSchemas(){return Rl},get getCollections(){return Xl},lootContext:ql,default:Vs})); +/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function Hl(e){let t=e.length;for(;--t>=0;)e[t]=0}const Wl=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Zl=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Gl=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Kl=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Yl=new Array(576);Hl(Yl);const Vl=new Array(60);Hl(Vl);const Ql=new Array(512);Hl(Ql);const ed=new Array(256);Hl(ed);const td=new Array(29);Hl(td);const rd=new Array(30);function id(e,t,r,i,n){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}let nd,od,ad;function sd(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}Hl(rd);const cd=e=>e<256?Ql[e]:Ql[256+(e>>>7)],ld=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},dd=(e,t,r)=>{e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<{dd(e,r[2*t],r[2*t+1])},pd=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},md=(e,t,r)=>{const i=new Array(16);let n,o,a=0;for(n=1;n<=15;n++)i[n]=a=a+r[n-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=pd(i[t]++,t))}},_d=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},hd=e=>{e.bi_valid>8?ld(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},fd=(e,t,r,i)=>{const n=2*t,o=2*r;return e[n]{const i=e.heap[r];let n=r<<1;for(;n<=e.heap_len&&(n{let i,n,o,a,s=0;if(0!==e.last_lit)do{i=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],n=e.pending_buf[e.l_buf+s],s++,0===i?ud(e,n,t):(o=ed[n],ud(e,o+256+1,t),a=Wl[o],0!==a&&(n-=td[o],dd(e,n,a)),i--,o=cd(i),ud(e,o,r),a=Zl[o],0!==a&&(i-=rd[o],dd(e,i,a)))}while(s{const r=t.dyn_tree,i=t.stat_desc.static_tree,n=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)gd(e,r,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],gd(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,r[2*c]=r[2*a]+r[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,r[2*a+1]=r[2*s+1]=c,e.heap[1]=c++,gd(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const r=t.dyn_tree,i=t.max_code,n=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,d,u,p,m,_,h=0;for(p=0;p<=15;p++)e.bl_count[p]=0;for(r[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)d=e.heap[l],p=r[2*r[2*d+1]+1]+1,p>c&&(p=c,h++),r[2*d+1]=p,d>i||(e.bl_count[p]++,m=0,d>=s&&(m=a[d-s]),_=r[2*d],e.opt_len+=_*(p+m),o&&(e.static_len+=_*(n[2*d+1]+m)));if(0!==h){do{for(p=c-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[c]--,h-=2}while(h>0);for(p=c;0!==p;p--)for(d=e.bl_count[p];0!==d;)u=e.heap[--l],u>i||(r[2*u+1]!==p&&(e.opt_len+=(p-r[2*u+1])*r[2*u],r[2*u+1]=p),d--)}})(e,t),md(r,l,e.bl_count)},vd=(e,t,r)=>{let i,n,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(r+1)+1]=65535,i=0;i<=r;i++)n=a,a=t[2*(i+1)+1],++s{let i,n,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),i=0;i<=r;i++)if(n=a,a=t[2*(i+1)+1],!(++s{dd(e,0+(i?1:0),3),((e,t,r,i)=>{hd(e),i&&(ld(e,r),ld(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var kd={_tr_init:e=>{xd||((()=>{let e,t,r,i,n;const o=new Array(16);for(r=0,i=0;i<28;i++)for(td[i]=r,e=0;e<1<>=7;i<30;i++)for(rd[i]=n<<7,e=0;e<1<{let n,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),yd(e,e.l_desc),yd(e,e.d_desc),a=(e=>{let t;for(vd(e,e.dyn_ltree,e.l_desc.max_code),vd(e,e.dyn_dtree,e.d_desc.max_code),yd(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*Kl[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),n=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=n&&(n=o)):n=o=r+5,r+4<=n&&-1!==t?wd(e,t,r,i):4===e.strategy||o===n?(dd(e,2+(i?1:0),3),bd(e,Yl,Vl)):(dd(e,4+(i?1:0),3),((e,t,r,i)=>{let n;for(dd(e,t-257,5),dd(e,r-1,5),dd(e,i-4,4),n=0;n(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(ed[r]+256+1)]++,e.dyn_dtree[2*cd(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{dd(e,2,3),ud(e,256,Yl),(e=>{16===e.bi_valid?(ld(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Od=(e,t,r,i)=>{let n=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==r;){a=r>2e3?2e3:r,r-=a;do{n=n+t[i++]|0,o=o+n|0}while(--a);n%=65521,o%=65521}return n|o<<16|0};const Sd=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());var Dd=(e,t,r,i)=>{const n=Sd,o=i+r;e^=-1;for(let a=i;a>>8^n[255&(e^t[a])];return-1^e},Ad={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Cd={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ed,_tr_stored_block:jd,_tr_flush_block:Fd,_tr_tally:Bd,_tr_align:Md}=kd,{Z_NO_FLUSH:Td,Z_PARTIAL_FLUSH:Ld,Z_FULL_FLUSH:Pd,Z_FINISH:Id,Z_BLOCK:Rd,Z_OK:zd,Z_STREAM_END:Ud,Z_STREAM_ERROR:$d,Z_DATA_ERROR:qd,Z_BUF_ERROR:Xd,Z_DEFAULT_COMPRESSION:Jd,Z_FILTERED:Hd,Z_HUFFMAN_ONLY:Wd,Z_RLE:Zd,Z_FIXED:Gd,Z_DEFAULT_STRATEGY:Kd,Z_UNKNOWN:Yd,Z_DEFLATED:Vd}=Cd,Qd=(e,t)=>(e.msg=Ad[t],t),eu=e=>(e<<1)-(e>4?9:0),tu=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let ru=(e,t,r)=>(t<{const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))},nu=(e,t)=>{Fd(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,iu(e.strm)},ou=(e,t)=>{e.pending_buf[e.pending++]=t},au=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},su=(e,t,r,i)=>{let n=e.avail_in;return n>i&&(n=i),0===n?0:(e.avail_in-=n,t.set(e.input.subarray(e.next_in,e.next_in+n),r),1===e.state.wrap?e.adler=Od(e.adler,t,n,r):2===e.state.wrap&&(e.adler=Dd(e.adler,t,n,r)),e.next_in+=n,e.total_in+=n,n)},cu=(e,t)=>{let r,i,n=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,d=e.w_mask,u=e.prev,p=e.strstart+258;let m=l[o+a-1],_=l[o+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(r=t,l[r+a]===_&&l[r+a-1]===m&&l[r]===l[o]&&l[++r]===l[o+1]){o+=2,r++;do{}while(l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&oa){if(e.match_start=t,a=i,i>=s)break;m=l[o+a-1],_=l[o+a]}}}while((t=u[t&d])>c&&0!=--n);return a<=e.lookahead?a:e.lookahead},lu=e=>{const t=e.w_size;let r,i,n,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,i=e.hash_size,r=i;do{n=e.head[--r],e.head[r]=n>=t?n-t:0}while(--i);i=t,r=i;do{n=e.prev[--r],e.prev[r]=n>=t?n-t:0}while(--i);o+=t}if(0===e.strm.avail_in)break;if(i=su(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=i,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=ru(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=ru(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},du=(e,t)=>{let r,i;for(;;){if(e.lookahead<262){if(lu(e),e.lookahead<262&&t===Td)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=ru(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=cu(e,r)),e.match_length>=3)if(i=Bd(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=ru(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ru(e,e.ins_h,e.window[e.strstart+1]);else i=Bd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(nu(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===Id?(nu(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(nu(e,!1),0===e.strm.avail_out)?1:2},uu=(e,t)=>{let r,i,n;for(;;){if(e.lookahead<262){if(lu(e),e.lookahead<262&&t===Td)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=ru(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,i=Bd(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=ru(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,i&&(nu(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=Bd(e,0,e.window[e.strstart-1]),i&&nu(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=Bd(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===Id?(nu(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(nu(e,!1),0===e.strm.avail_out)?1:2};function pu(e,t,r,i,n){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=i,this.func=n}const mu=[new pu(0,0,0,0,((e,t)=>{let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(lu(e),0===e.lookahead&&t===Td)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const i=e.block_start+r;if((0===e.strstart||e.strstart>=i)&&(e.lookahead=e.strstart-i,e.strstart=i,nu(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(nu(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Id?(nu(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(nu(e,!1),e.strm.avail_out),1)})),new pu(4,4,8,4,du),new pu(4,5,16,8,du),new pu(4,6,32,32,du),new pu(4,4,16,16,uu),new pu(8,16,32,32,uu),new pu(8,16,128,128,uu),new pu(8,32,128,256,uu),new pu(32,128,258,1024,uu),new pu(32,258,258,4096,uu)];function _u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Vd,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),tu(this.dyn_ltree),tu(this.dyn_dtree),tu(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),tu(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),tu(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const hu=e=>{if(!e||!e.state)return Qd(e,$d);e.total_in=e.total_out=0,e.data_type=Yd;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=Td,Ed(t),zd},fu=e=>{const t=hu(e);var r;return t===zd&&((r=e.state).window_size=2*r.w_size,tu(r.head),r.max_lazy_match=mu[r.level].max_lazy,r.good_match=mu[r.level].good_length,r.nice_match=mu[r.level].nice_length,r.max_chain_length=mu[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=2,r.match_available=0,r.ins_h=0),t},gu=(e,t,r,i,n,o)=>{if(!e)return $d;let a=1;if(t===Jd&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>9||r!==Vd||i<8||i>15||t<0||t>9||o<0||o>Gd)return Qd(e,$d);8===i&&(i=9);const s=new _u;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=i,s.w_size=1<gu(e,t,Vd,15,8,Kd),deflateInit2:gu,deflateReset:fu,deflateResetKeep:hu,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?$d:(e.state.gzhead=t,zd):$d,deflate:(e,t)=>{let r,i;if(!e||!e.state||t>Rd||t<0)return e?Qd(e,$d):$d;const n=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==Id)return Qd(e,0===e.avail_out?Xd:$d);n.strm=e;const o=n.last_flush;if(n.last_flush=t,42===n.status)if(2===n.wrap)e.adler=0,ou(n,31),ou(n,139),ou(n,8),n.gzhead?(ou(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),ou(n,255&n.gzhead.time),ou(n,n.gzhead.time>>8&255),ou(n,n.gzhead.time>>16&255),ou(n,n.gzhead.time>>24&255),ou(n,9===n.level?2:n.strategy>=Wd||n.level<2?4:0),ou(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(ou(n,255&n.gzhead.extra.length),ou(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Dd(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(ou(n,0),ou(n,0),ou(n,0),ou(n,0),ou(n,0),ou(n,9===n.level?2:n.strategy>=Wd||n.level<2?4:0),ou(n,3),n.status=113);else{let t=Vd+(n.w_bits-8<<4)<<8,r=-1;r=n.strategy>=Wd||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=r<<6,0!==n.strstart&&(t|=32),t+=31-t%31,n.status=113,au(n,t),0!==n.strstart&&(au(n,e.adler>>>16),au(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(r=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>r&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),iu(e),r=n.pending,n.pending!==n.pending_buf_size));)ou(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),iu(e),r=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexr&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),0===i&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),iu(e),r=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindexr&&(e.adler=Dd(e.adler,n.pending_buf,n.pending-r,r)),0===i&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&iu(e),n.pending+2<=n.pending_buf_size&&(ou(n,255&e.adler),ou(n,e.adler>>8&255),e.adler=0,n.status=113)):n.status=113),0!==n.pending){if(iu(e),0===e.avail_out)return n.last_flush=-1,zd}else if(0===e.avail_in&&eu(t)<=eu(o)&&t!==Id)return Qd(e,Xd);if(666===n.status&&0!==e.avail_in)return Qd(e,Xd);if(0!==e.avail_in||0!==n.lookahead||t!==Td&&666!==n.status){let r=n.strategy===Wd?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(lu(e),0===e.lookahead)){if(t===Td)return 1;break}if(e.match_length=0,r=Bd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(nu(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Id?(nu(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(nu(e,!1),0===e.strm.avail_out)?1:2})(n,t):n.strategy===Zd?((e,t)=>{let r,i,n,o;const a=e.window;for(;;){if(e.lookahead<=258){if(lu(e),e.lookahead<=258&&t===Td)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=e.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){o=e.strstart+258;do{}while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&ne.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=Bd(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Bd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(nu(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Id?(nu(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(nu(e,!1),0===e.strm.avail_out)?1:2})(n,t):mu[n.level].func(n,t);if(3!==r&&4!==r||(n.status=666),1===r||3===r)return 0===e.avail_out&&(n.last_flush=-1),zd;if(2===r&&(t===Ld?Md(n):t!==Rd&&(jd(n,0,0,!1),t===Pd&&(tu(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),iu(e),0===e.avail_out))return n.last_flush=-1,zd}return t!==Id?zd:n.wrap<=0?Ud:(2===n.wrap?(ou(n,255&e.adler),ou(n,e.adler>>8&255),ou(n,e.adler>>16&255),ou(n,e.adler>>24&255),ou(n,255&e.total_in),ou(n,e.total_in>>8&255),ou(n,e.total_in>>16&255),ou(n,e.total_in>>24&255)):(au(n,e.adler>>>16),au(n,65535&e.adler)),iu(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?zd:Ud)},deflateEnd:e=>{if(!e||!e.state)return $d;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Qd(e,$d):(e.state=null,113===t?Qd(e,qd):zd)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return $d;const i=e.state,n=i.wrap;if(2===n||1===n&&42!==i.status||i.lookahead)return $d;if(1===n&&(e.adler=Od(e.adler,t,r,0)),i.wrap=0,r>=i.w_size){0===n&&(tu(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(r-i.w_size,r),0),t=e,r=i.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,lu(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=ru(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,lu(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,i.wrap=n,zd},deflateInfo:"pako deflate (from Nodeca project)"};const yu=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var vu=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const t in r)yu(r,t)&&(e[t]=r[t])}}return e},Nu=e=>{let t=0;for(let i=0,n=e.length;i=252?6:dv>=248?5:dv>=240?4:dv>=224?3:dv>=192?2:1;wu[254]=wu[254]=1;var ku=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,i,n,o,a=e.length,s=0;for(n=0;n>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t},Ou=(e,t)=>{const r=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,n;const o=new Array(2*r);for(n=0,i=0;i4)o[n++]=65533,i+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&i1?o[n++]=65533:t<65536?o[n++]=t:(t-=65536,o[n++]=55296|t>>10&1023,o[n++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&xu)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let i=0;i{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+wu[e[r]]>t?r:t};var Du=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Au=Object.prototype.toString,{Z_NO_FLUSH:Cu,Z_SYNC_FLUSH:Eu,Z_FULL_FLUSH:ju,Z_FINISH:Fu,Z_OK:Bu,Z_STREAM_END:Mu,Z_DEFAULT_COMPRESSION:Tu,Z_DEFAULT_STRATEGY:Lu,Z_DEFLATED:Pu}=Cd;function Iu(e){this.options=vu({level:Tu,method:Pu,chunkSize:16384,windowBits:15,memLevel:8,strategy:Lu},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Du,this.strm.avail_out=0;let r=bu.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==Bu)throw new Error(Ad[r]);if(t.header&&bu.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?ku(t.dictionary):"[object ArrayBuffer]"===Au.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=bu.deflateSetDictionary(this.strm,e),r!==Bu)throw new Error(Ad[r]);this._dict_set=!0}}Iu.prototype.push=function(e,t){const r=this.strm,i=this.options.chunkSize;let n,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Fu:Cu,"string"==typeof e?r.input=ku(e):"[object ArrayBuffer]"===Au.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(o===Eu||o===ju)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(n=bu.deflate(r,o),n===Mu)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),n=bu.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Bu;if(0!==r.avail_out){if(o>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},Iu.prototype.onData=function(e){this.chunks.push(e)},Iu.prototype.onEnd=function(e){e===Bu&&(this.result=Nu(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ru=function(e,t){let r,i,n,o,a,s,c,l,d,u,p,m,_,h,f,g,b,y,v,N,x,w,k,O;const S=e.state;r=e.next_in,k=e.input,i=r+(e.avail_in-5),n=e.next_out,O=e.output,o=n-(t-e.avail_out),a=n+(e.avail_out-257),s=S.dmax,c=S.wsize,l=S.whave,d=S.wnext,u=S.window,p=S.hold,m=S.bits,_=S.lencode,h=S.distcode,f=(1<>>24,p>>>=y,m-=y,y=b>>>16&255,0===y)O[n++]=65535&b;else{if(!(16&y)){if(0==(64&y)){b=_[(65535&b)+(p&(1<>>=y,m-=y),m<15&&(p+=k[r++]<>>24,p>>>=y,m-=y,y=b>>>16&255,!(16&y)){if(0==(64&y)){b=h[(65535&b)+(p&(1<s){e.msg="invalid distance too far back",S.mode=30;break e}if(p>>>=y,m-=y,y=n-o,N>y){if(y=N-y,y>l&&S.sane){e.msg="invalid distance too far back",S.mode=30;break e}if(x=0,w=u,0===d){if(x+=c-y,y2;)O[n++]=w[x++],O[n++]=w[x++],O[n++]=w[x++],v-=3;v&&(O[n++]=w[x++],v>1&&(O[n++]=w[x++]))}else{x=n-N;do{O[n++]=O[x++],O[n++]=O[x++],O[n++]=O[x++],v-=3}while(v>2);v&&(O[n++]=O[x++],v>1&&(O[n++]=O[x++]))}break}}break}}while(r>3,r-=v,m-=v<<3,p&=(1<{const c=s.bits;let l,d,u,p,m,_,h=0,f=0,g=0,b=0,y=0,v=0,N=0,x=0,w=0,k=0,O=null,S=0;const D=new Uint16Array(16),A=new Uint16Array(16);let C,E,j,F=null,B=0;for(h=0;h<=15;h++)D[h]=0;for(f=0;f=1&&0===D[b];b--);if(y>b&&(y=b),0===b)return n[o++]=20971520,n[o++]=20971520,s.bits=1,0;for(g=1;g0&&(0===e||1!==b))return-1;for(A[1]=0,h=1;h<15;h++)A[h+1]=A[h]+D[h];for(f=0;f852||2===e&&w>592)return 1;for(;;){C=h-N,a[f]<_?(E=0,j=a[f]):a[f]>_?(E=F[B+a[f]],j=O[S+a[f]]):(E=96,j=0),l=1<>N)+d]=C<<24|E<<16|j|0}while(0!==d);for(l=1<>=1;if(0!==l?(k&=l-1,k+=l):k=0,f++,0==--D[h]){if(h===b)break;h=t[r+a[f]]}if(h>y&&(k&p)!==u){for(0===N&&(N=y),m+=g,v=h-N,x=1<852||2===e&&w>592)return 1;u=k&p,n[u]=y<<24|v<<16|m-o|0}}return 0!==k&&(n[m+k]=h-N<<24|64<<16|0),s.bits=y,0};const{Z_FINISH:Ju,Z_BLOCK:Hu,Z_TREES:Wu,Z_OK:Zu,Z_STREAM_END:Gu,Z_NEED_DICT:Ku,Z_STREAM_ERROR:Yu,Z_DATA_ERROR:Vu,Z_MEM_ERROR:Qu,Z_BUF_ERROR:ep,Z_DEFLATED:tp}=Cd,rp=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function ip(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const np=e=>{if(!e||!e.state)return Yu;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Zu},op=e=>{if(!e||!e.state)return Yu;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,np(e)},ap=(e,t)=>{let r;if(!e||!e.state)return Yu;const i=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Yu:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=r,i.wbits=t,op(e))},sp=(e,t)=>{if(!e)return Yu;const r=new ip;e.state=r,r.window=null;const i=ap(e,t);return i!==Zu&&(e.state=null),i};let cp,lp,dp=!0;const up=e=>{if(dp){cp=new Int32Array(512),lp=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Xu(1,e.lens,0,288,cp,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Xu(2,e.lens,0,32,lp,0,e.work,{bits:5}),dp=!1}e.lencode=cp,e.lenbits=9,e.distcode=lp,e.distbits=5},pp=(e,t,r,i)=>{let n;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(n=o.wsize-o.wnext,n>i&&(n=i),o.window.set(t.subarray(r-i,r-i+n),o.wnext),(i-=n)?(o.window.set(t.subarray(r-i,r),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=n,o.wnext===o.wsize&&(o.wnext=0),o.whavesp(e,15),inflateInit2:sp,inflate:(e,t)=>{let r,i,n,o,a,s,c,l,d,u,p,m,_,h,f,g,b,y,v,N,x,w,k=0;const O=new Uint8Array(4);let S,D;const A=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Yu;r=e.state,12===r.mode&&(r.mode=13),a=e.next_out,n=e.output,c=e.avail_out,o=e.next_in,i=e.input,s=e.avail_in,l=r.hold,d=r.bits,u=s,p=c,w=Zu;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;d<16;){if(0===s)break e;s--,l+=i[o++]<>>8&255,r.check=Dd(r.check,O,2,0),l=0,d=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=30;break}if((15&l)!==tp){e.msg="unknown compression method",r.mode=30;break}if(l>>>=4,d-=4,x=8+(15&l),0===r.wbits)r.wbits=x;else if(x>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(O[0]=255&l,O[1]=l>>>8&255,r.check=Dd(r.check,O,2,0)),l=0,d=0,r.mode=3;case 3:for(;d<32;){if(0===s)break e;s--,l+=i[o++]<>>8&255,O[2]=l>>>16&255,O[3]=l>>>24&255,r.check=Dd(r.check,O,4,0)),l=0,d=0,r.mode=4;case 4:for(;d<16;){if(0===s)break e;s--,l+=i[o++]<>8),512&r.flags&&(O[0]=255&l,O[1]=l>>>8&255,r.check=Dd(r.check,O,2,0)),l=0,d=0,r.mode=5;case 5:if(1024&r.flags){for(;d<16;){if(0===s)break e;s--,l+=i[o++]<>>8&255,r.check=Dd(r.check,O,2,0)),l=0,d=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(m=r.length,m>s&&(m=s),m&&(r.head&&(x=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(i.subarray(o,o+m),x)),512&r.flags&&(r.check=Dd(r.check,i,m,o)),s-=m,o+=m,r.length-=m),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break e;m=0;do{x=i[o+m++],r.head&&x&&r.length<65536&&(r.head.name+=String.fromCharCode(x))}while(x&&m>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;d<32;){if(0===s)break e;s--,l+=i[o++]<>>=7&d,d-=7&d,r.mode=27;break}for(;d<3;){if(0===s)break e;s--,l+=i[o++]<>>=1,d-=1,3&l){case 0:r.mode=14;break;case 1:if(up(r),r.mode=20,t===Wu){l>>>=2,d-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}l>>>=2,d-=2;break;case 14:for(l>>>=7&d,d-=7&d;d<32;){if(0===s)break e;s--,l+=i[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,d=0,r.mode=15,t===Wu)break e;case 15:r.mode=16;case 16:if(m=r.length,m){if(m>s&&(m=s),m>c&&(m=c),0===m)break e;n.set(i.subarray(o,o+m),a),s-=m,o+=m,c-=m,a+=m,r.length-=m;break}r.mode=12;break;case 17:for(;d<14;){if(0===s)break e;s--,l+=i[o++]<>>=5,d-=5,r.ndist=1+(31&l),l>>>=5,d-=5,r.ncode=4+(15&l),l>>>=4,d-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,d-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},w=Xu(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,w){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>24,g=k>>>16&255,b=65535&k,!(f<=d);){if(0===s)break e;s--,l+=i[o++]<>>=f,d-=f,r.lens[r.have++]=b;else{if(16===b){for(D=f+2;d>>=f,d-=f,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}x=r.lens[r.have-1],m=3+(3&l),l>>>=2,d-=2}else if(17===b){for(D=f+3;d>>=f,d-=f,x=0,m=3+(7&l),l>>>=3,d-=3}else{for(D=f+7;d>>=f,d-=f,x=0,m=11+(127&l),l>>>=7,d-=7}if(r.have+m>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;m--;)r.lens[r.have++]=x}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},w=Xu(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,w){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},w=Xu(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,w){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,t===Wu)break e;case 20:r.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,r.hold=l,r.bits=d,Ru(e,p),a=e.next_out,n=e.output,c=e.avail_out,o=e.next_in,i=e.input,s=e.avail_in,l=r.hold,d=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;k=r.lencode[l&(1<>>24,g=k>>>16&255,b=65535&k,!(f<=d);){if(0===s)break e;s--,l+=i[o++]<>y)],f=k>>>24,g=k>>>16&255,b=65535&k,!(y+f<=d);){if(0===s)break e;s--,l+=i[o++]<>>=y,d-=y,r.back+=y}if(l>>>=f,d-=f,r.back+=f,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(D=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;k=r.distcode[l&(1<>>24,g=k>>>16&255,b=65535&k,!(f<=d);){if(0===s)break e;s--,l+=i[o++]<>y)],f=k>>>24,g=k>>>16&255,b=65535&k,!(y+f<=d);){if(0===s)break e;s--,l+=i[o++]<>>=y,d-=y,r.back+=y}if(l>>>=f,d-=f,r.back+=f,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(D=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(m=p-c,r.offset>m){if(m=r.offset-m,m>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}m>r.wnext?(m-=r.wnext,_=r.wsize-m):_=r.wnext-m,m>r.length&&(m=r.length),h=r.window}else h=n,_=a-r.offset,m=r.length;m>c&&(m=c),c-=m,r.length-=m;do{n[a++]=h[_++]}while(--m);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;n[a++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;d<32;){if(0===s)break e;s--,l|=i[o++]<{if(!e||!e.state)return Yu;let t=e.state;return t.window&&(t.window=null),e.state=null,Zu},inflateGetHeader:(e,t)=>{if(!e||!e.state)return Yu;const r=e.state;return 0==(2&r.wrap)?Yu:(r.head=t,t.done=!1,Zu)},inflateSetDictionary:(e,t)=>{const r=t.length;let i,n,o;return e&&e.state?(i=e.state,0!==i.wrap&&11!==i.mode?Yu:11===i.mode&&(n=1,n=Od(n,t,r,0),n!==i.check)?Vu:(o=pp(e,t,r,r),o?(i.mode=31,Qu):(i.havedict=1,Zu))):Yu},inflateInfo:"pako inflate (from Nodeca project)"};var _p=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const hp=Object.prototype.toString,{Z_NO_FLUSH:fp,Z_FINISH:gp,Z_OK:bp,Z_STREAM_END:yp,Z_NEED_DICT:vp,Z_STREAM_ERROR:Np,Z_DATA_ERROR:xp,Z_MEM_ERROR:wp}=Cd;function kp(e){this.options=vu({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Du,this.strm.avail_out=0;let r=mp.inflateInit2(this.strm,t.windowBits);if(r!==bp)throw new Error(Ad[r]);if(this.header=new _p,mp.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=ku(t.dictionary):"[object ArrayBuffer]"===hp.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=mp.inflateSetDictionary(this.strm,t.dictionary),r!==bp)))throw new Error(Ad[r])}kp.prototype.push=function(e,t){const r=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?gp:fp,"[object ArrayBuffer]"===hp.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),o=mp.inflate(r,a),o===vp&&n&&(o=mp.inflateSetDictionary(r,n),o===bp?o=mp.inflate(r,a):o===xp&&(o=vp));r.avail_in>0&&o===yp&&r.state.wrap>0&&0!==e[r.next_in];)mp.inflateReset(r),o=mp.inflate(r,a);switch(o){case Np:case xp:case vp:case wp:return this.onEnd(o),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||o===yp))if("string"===this.options.to){let e=Su(r.output,r.next_out),t=r.next_out-e,n=Ou(r.output,e);r.next_out=t,r.avail_out=i-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(o!==bp||0!==s){if(o===yp)return o=mp.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},kp.prototype.onData=function(e){this.chunks.push(e)},kp.prototype.onEnd=function(e){e===bp&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Nu(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Op,Sp,Dp={exports:{}},Ap={exports:{}};Op="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sp={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Sp.rotl(e,8)|4278255360&Sp.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,i=0;r>>5]|=e[r]<<24-i%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r>>6*(3-n)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,i=0;r>>6-2*i);return t}},Ap.exports=Sp;var Cp={utf8:{stringToBytes:function(e){return Cp.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Cp.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r>>24)|4278255360&(s[m]<<24|s[m]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var _=n._ff,h=n._gg,f=n._hh,g=n._ii;for(m=0;m>>0,d=d+y>>>0,u=u+v>>>0,p=p+N>>>0}return e.endian([l,d,u,p])};n._ff=function(e,t,r,i,n,o,a){var s=e+(t&r|~t&i)+(n>>>0)+a;return(s<>>32-o)+t},n._gg=function(e,t,r,i,n,o,a){var s=e+(t&i|r&~i)+(n>>>0)+a;return(s<>>32-o)+t},n._hh=function(e,t,r,i,n,o,a){var s=e+(t^r^i)+(n>>>0)+a;return(s<>>32-o)+t},n._ii=function(e,t,r,i,n,o,a){var s=e+(r^(t|~i))+(n>>>0)+a;return(s<>>32-o)+t},n._blocksize=16,n._digestsize=16,Dp.exports=function(t,r){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(n(t,r));return r&&r.asBytes?o:r&&r.asString?i.bytesToString(o):e.bytesToHex(o)}}();var Bp,Mp,Tp=Dp.exports;(Mp=Bp||(Bp={})).UP="up",Mp.DOWN="down",Mp.NORTH="north",Mp.EAST="east",Mp.SOUTH="south",Mp.WEST="west";const Lp={[Bp.UP]:[0,1,0],[Bp.DOWN]:[0,-1,0],[Bp.NORTH]:[0,0,-1],[Bp.EAST]:[1,0,0],[Bp.SOUTH]:[0,0,1],[Bp.WEST]:[-1,0,0]};var Pp,Ip,Rp,zp,Up,$p,qp,Xp,Jp,Hp,Wp,Zp,Gp,Kp,Yp,Vp;function Qp(e,t,r){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==r)throw new Error(`Expected ${t} to be of type ${r}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return Lp[e]}}(Bp||(Bp={})),function(e){e.create=function(e,t,r){return[e,t,r]},e.offset=function(e,t,r,i){return[e[0]+t,e[1]+r,e[2]+i]},e.towards=function(t,r){return e.offset(t,...Bp.normal(r))}}(Pp||(Pp={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,r){var i;const n=null!==(i=t(e))&&void 0!==i?i:{};return Object.fromEntries(Object.entries(n).map((([e,t])=>[e,r(t)])))},e.compose=function(e,t,r){const i=t(e);return i?r(i):void 0}}(Ip||(Ip={}));class em{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=Qp(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>Qp(e.value,"Properties","compound")),{}),i=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:Qp(r,t,"string")})),{});return new em(t,i)}static fromJson(e){var t,r;const i=null!==(t=Ip.readObject(e))&&void 0!==t?t:{},n=null!==(r=Ip.readString(i.Name))&&void 0!==r?r:"minecraft:stone",o=Ip.readMap(i.Properties,(e=>{var t;return null!==(t=Ip.readString(e))&&void 0!==t?t:""}));return new em(n,o)}}em.AIR=new em("minecraft:air");class tm{constructor(e){this.minY=e,this.storage=Array(tm.SIZE),this.palette=[em.AIR]}get minBlockY(){return this.minY<<4}index(e,t,r){return(e<<8)+(t<<4)+r}getBlockState(e,t,r){var i;const n=this.storage[this.index(e,t,r)];return null!==(i=this.palette[n])&&void 0!==i?i:em.AIR}setBlockState(e,t,r,i){let n=this.palette.findIndex((e=>e.equals(i)));-1===n&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(e,t,r)]=n}}tm.WIDTH=16,tm.SIZE=tm.WIDTH*tm.WIDTH*tm.WIDTH;class rm{constructor(e,t,r){this.minY=e,this.height=t,this.pos=r,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[r,i,n]=e,o=this.sections[this.getSectionIndex(i)];return null!==(t=null==o?void 0:o.getBlockState(15&r,15&i,15&n))&&void 0!==t?t:em.AIR}setBlockState(e,t){const[r,i,n]=e,o=this.getSectionIndex(i);let a=this.sections[o];if(null===a){if(t.equals(em.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&r,15&i,15&n,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new tm(this.minSection+e)),this.sections[e]}}function im(e){return e*e}function nm(e,t,r){return Math.max(t,Math.min(r,e))}function om(e,t,r){return t+e*(r-t)}function am(e,t,r,i,n,o){return om(t,om(e,r,i),om(e,n,o))}function sm(e,t,r){return r<0?e:r>1?t:om(r,e,t)}function cm(e){return e*e*e*(e*(6*e-15)+10)}!function(e){e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return e[0]<<19},e.maxBlockZ=function(e){return e[1]<<19}}(Rp||(Rp={}));class lm{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new lm(this.nextLong())}setSeed(e){this.seed=e^lm.MULTIPLIER&lm.MODULUS_MASK}advance(){this.seed=this.seed*lm.MULTIPLIER+lm.INCREMENT&lm.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(lm.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,r;for(;(t=this.next(31))-(r=t%e)+(e-1)<0;);return r}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^dm.SILVER_RATIO_64,r=t+dm.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[dm.mixStafford13(t),dm.mixStafford13(r)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=dm.upgradeSeedTo128bit(e)}fork(){return new dm([this.next(),this.next()])}static getSeed(e,t,r){let i=e*BigInt(3129871)^r*BigInt(116129781)^t;return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}forkAt(e,t,r){const i=dm.getSeed(e,t,r)^this.seed[0];return new dm([i,this.seed[1]])}static LongfromBytes(e,t,r,i,n,o,a,s){return BigInt(e)<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],r=this.seed[1];for(let i=0;i>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const r=BigInt(e);let i=t*r,n=i&BigInt(4294967295);if(n>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*dm.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*dm.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}dm.SILVER_RATIO_64=BigInt("7640891576956012809"),dm.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),dm.FLOAT_MULTIPLIER=1/Math.pow(2,24),dm.DOUBLE_MULTIPLIER=11102230246251565e-32;class um{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=i}}sample2D(e,t){let r,i,n;const o=(e+t)*um.F2,a=Math.floor(e+o),s=e-(a-(r=(a+(i=Math.floor(t+o)))*um.G2));let c,l;s>(n=t-(i-r))?(c=1,l=0):(c=0,l=1);const d=s-c+um.G2,u=n-l+um.G2,p=s-1+2*um.G2,m=n-1+2*um.G2,_=255&a,h=255&i,f=this.P(_+this.P(h))%12,g=this.P(_+c+this.P(h+l))%12,b=this.P(_+1+this.P(h+1))%12;return 70*(this.getCornerNoise3D(f,s,n,0,.5)+this.getCornerNoise3D(g,d,u,0,.5)+this.getCornerNoise3D(b,p,m,0,.5))}sample(e,t,r){const i=.3333333333333333*(e+t+r),n=Math.floor(e+i),o=Math.floor(t+i),a=Math.floor(r+i),s=.16666666666666666*(n+o+a),c=e-(n-s),l=t-(o-s),d=r-(a-s);let u,p,m,_,h,f;c>=l?l>=d?(u=1,p=0,m=0,_=1,h=1,f=0):c>=d?(u=1,p=0,m=0,_=1,h=0,f=1):(u=0,p=0,m=1,_=1,h=0,f=1):l127?t-256:t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),i=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=i}}sample(e,t,r,i=0,n=0){const o=e+this.xo,a=t+this.yo,s=r+this.zo,c=Math.floor(o),l=Math.floor(a),d=Math.floor(s),u=o-c,p=a-l,m=s-d;let _=0;if(0!==i){const e=n>=0&&n=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(s+=i.sample(u,p,m,d,t*d)/o),o/=2}return sm(a/512,s/512,n)/128}}(zp||(zp={})).fromJson=function(e){var t,r,i,n,o;const a=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(r=Ip.readNumber(a.xz_scale))&&void 0!==r?r:1,yScale:null!==(i=Ip.readNumber(a.y_scale))&&void 0!==i?i:1,xzFactor:null!==(n=Ip.readNumber(a.xz_factor))&&void 0!==n?n:80,yFactor:null!==(o=Ip.readNumber(a.y_factor))&&void 0!==o?o:80}};class hm{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new mm(e,t,r),this.second=new mm(e,t,r);let i=1/0,n=-1/0;for(let a=0;a{var t;return null!==(t=Ip.readNumber(e))&&void 0!==t?t:0})))&&void 0!==i?i:[]}},function(e){e.fromJson=function(t,r){var i,n,o,a;if("number"==typeof t)return new fm(t);const s=null!==(i=Ip.readObject(t))&&void 0!==i?i:{},c=new gm(r(s.coordinate)),l=null!==(n=Ip.readArray(s.points,(e=>{var t;return null!==(t=Ip.readObject(e))&&void 0!==t?t:{}})))&&void 0!==n?n:[];if(0===l.length)return new fm(0);for(const d of l){const t=null!==(o=Ip.readNumber(d.location))&&void 0!==o?o:0,i=e.fromJson(d.value,r),n=null!==(a=Ip.readNumber(d.derivative))&&void 0!==a?a:0;c.addPoint(t,i,n)}return c}}($p||($p={}));class fm{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class gm{constructor(e,t=[],r=[],i=[]){this.coordinate=e,this.locations=t,this.values=r,this.derivatives=i}apply(e){const t=this.coordinate.apply(e),r=function(e,t,r){let i=t-e;for(;i>0;){const t=Math.floor(i/2),n=e+t;r(n)?i=t:(e=n+1,i-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(qp||(qp={})).rotate=function(e,t,r){let{up:i,down:n,north:o,east:a,south:s,west:c}=e;switch(r){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[i,o,n,s]=[o,n,s,i];break;case 180:[i,o,n,s]=[n,s,i,o];break;case 270:[i,o,n,s]=[s,i,o,n]}return{up:i,down:n,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new r(e,null!=t?t:e):e}e.target=function(e,t,r,i,o,a){return new n(e,t,r,i,o,a)},e.parameters=function(e,r,n,o,a,s,c){return new i(t(e),t(r),t(n),t(o),t(a),t(s),c)},e.param=t;class r{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,r=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(r,0)}union(e){return new r(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new r(e,e);const[i,n]=null!==(t=Ip.readArray(e,(e=>Ip.readNumber(e))))&&void 0!==t?t:[];return new r(null!=i?i:0,null!=n?n:0)}}e.Param=r;class i{constructor(e,t,r,i,n,o,a){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=i,this.depth=n,this.weirdness=o,this.offset=a}fittness(e){return im(this.temperature.distance(e.temperature))+im(this.humidity.distance(e.humidity))+im(this.continentalness.distance(e.continentalness))+im(this.erosion.distance(e.erosion))+im(this.depth.distance(e.depth))+im(this.weirdness.distance(e.weirdness))+im(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new r(this.offset,this.offset)]}static fromJson(e){var t,n;const o=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return new i(r.fromJson(o.temperature),r.fromJson(o.humidity),r.fromJson(o.continentalness),r.fromJson(o.erosion),r.fromJson(o.depth),r.fromJson(o.weirdness),null!==(n=Ip.readInt(o.offset))&&void 0!==n?n:0)}}e.ParamPoint=i;class n{constructor(e,t,r,i,n,o){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=i,this.depth=n,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=n,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let r=0;r<7;r+=1){const i=e.space[r];t+=Math.abs((i.min+i.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,r=-1,i=[];for(let n=0;n<7;++n){e=o.sort(e,n,!1),i=o.bucketize(e);let a=0;for(const e of i)a+=o.area(e.space);t>a&&(t=a,r=n)}return e=o.sort(e,r,!1),i=o.bucketize(e),i=o.sort(i,r,!0),new s(i.map((e=>o.build(e.children))))}static sort(e,t,r){return e.map((e=>{const i=e.space[t],n=(i.min+i.max)/2;return{key:r?Math.abs(n):n,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let r=[];const i=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const n of e)r.push(n),r.lengthnew r(1/0,-1/0)));for(const r of e)t=[...Array(7)].map(((e,i)=>t[i].union(r.space[i])));return t}search(e,t){let r=1/0,i=null;for(const n of this.children){const o=t(n,e);if(r<=o)continue;const a=n.search(e,t),s=n==a?o:t(a,e);r<=s||(r=s,i=a)}return i}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(Xp||(Xp={}));class bm{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const i=null!==(t=Ip.readObject(e))&&void 0!==t?t:{},n=null!==(r=Ip.readString(i.biome))&&void 0!==r?r:"minecraft:the_void";return new bm(n)}}class ym{constructor(e,t,r){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=r}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const r=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return new ym($p.fromJson(r.offset,this.EXTRACTOR),$p.fromJson(r.factor,this.EXTRACTOR),$p.fromJson(r.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+ym.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,r){return{continents:e,erosion:t,weirdness:r,ridges:this.peaksAndValleys(r)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),r=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),i=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new gm(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,r).addPoint(1,i),o=new gm(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new gm(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new ym(n,o,a)}static getErosionFactor(e,t){const r=new gm(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),i=new gm(this.EROSION).addPoint(-.6,r).addPoint(-.5,new gm(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,r).addPoint(-.25,r).addPoint(-.1,new gm(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,r);if(t){const t=new gm(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),r=new gm(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);i.addPoint(.35,e).addPoint(.45,r).addPoint(.55,r).addPoint(.62,e)}else{const t=new gm(this.RIDGES).addPoint(-.7,r).addPoint(-.15,1.37),n=new gm(this.RIDGES).addPoint(.45,r).addPoint(.7,1.56);i.addPoint(.05,n).addPoint(.4,n).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return i}static buildErosionOffsetSpline(e,t,r,i,n,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(om(i,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(om(i,.6,1),s),d=this.buildMountainRidgeSplineWithPoints(i,s),u=this.ridgeSpline(e-.15,.5*i,om(.5,.5,.5)*i,.5*i,.6*i,.5),p=this.ridgeSpline(e,n*i,t*i,.5*i,.6*i,.5),m=this.ridgeSpline(e,n,n,t,r,.5),_=this.ridgeSpline(e,n,n,t,r,.5),h=new gm(this.RIDGES).addPoint(-1,e).addPoint(-.4,m).addPoint(0,r+.07),f=this.ridgeSpline(-.02,o,o,t,r,0),g=new gm(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,d).addPoint(-.35,u).addPoint(-.1,p).addPoint(.2,m);return a&&g.addPoint(.4,_).addPoint(.45,h).addPoint(.55,h).addPoint(.58,_),g.addPoint(.7,f),g}static buildMountainRidgeSplineWithPoints(e,t){const r=new gm(this.RIDGES),i=this.mountainContinentalness(-1,e,-.7),n=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new gm(ym.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}ym.GLOBAL_OFFSET=-.50375,ym.EXTRACTOR=e=>{var t;const r=null!==(t=Ip.readString(e))&&void 0!==t?t:"continents";return ym.extractor(r)},ym.CONTINENTS=ym.extractor("continents"),ym.EROSION=ym.extractor("erosion"),ym.WEIRDNESS=ym.extractor("weirdness"),ym.RIDGES=ym.extractor("ridges"),(Jp||(Jp={})).fromList=function(e){return(t,r,i,n)=>{for(const o of e){const e=o(t,r,i,n);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,r,i,n,o,a,s,c;const l=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return{minY:null!==(r=Ip.readInt(l.min_y))&&void 0!==r?r:0,height:null!==(i=Ip.readInt(l.height))&&void 0!==i?i:256,xzSize:null!==(n=Ip.readInt(l.size_horizontal))&&void 0!==n?n:1,ySize:null!==(o=Ip.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:zp.fromJson(l.sampling),topSlide:Wp.fromJson(l.top_slide),bottomSlide:Wp.fromJson(l.bottom_slide),terrainShaper:ym.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=Ip.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=Ip.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=Ip.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(Hp||(Hp={})),function(e){e.fromJson=function(e){var t,r,i,n;const o=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return{target:null!==(r=Ip.readNumber(o.target))&&void 0!==r?r:0,size:null!==(i=Ip.readInt(o.size))&&void 0!==i?i:0,offset:null!==(n=Ip.readInt(o.offset))&&void 0!==n?n:0}},e.apply=function(e,t,r){if(e.size<=0)return t;const i=(r-e.offset)/e.size;return sm(e.target,t,i)}}(Wp||(Wp={}));class vm{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=vm.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=vm.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const r=Array(t+1);for(let i=0;i>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let d=0;d<=l;d+=1){const e=this.firstNoiseX+d;this.noiseData[d]=Array(l+1);for(let t=0;t<=l;t+=1){const r=this.firstNoiseZ+t;this.noiseData[d][t]=i.noiseData(e,r)}}this.baseNoise=i.makeBaseNoiseFiller(this,a)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}createNoiseInterpolator(e){const t=new vm(this,e);return this.interpolators.push(t),t}initializeForFirstCellX(){this.interpolators.forEach((e=>e.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((r=>r.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,r){return this.baseNoise(e,t,r)}}(Zp||(Zp={})).create=function(e,t,r){return{offset:e,factor:t,jaggedness:r}};class xm{constructor(e,t,r,i=!1){if(this.settings=e,i){const i=new lm(t);this.blendedNoise=new _m(i.fork(),e.sampling,Hp.cellWidth(e),Hp.cellHeight(e)),i.consume(8),this.temperatureNoise=new hm(new lm(t),r.temperature),this.humidityNoise=new hm(new lm(t+BigInt(1)),r.humidity),this.continentalnessNoise=new hm(new lm(t+BigInt(2)),r.continentalness),this.erosionNoise=new hm(new lm(t+BigInt(3)),r.erosion),this.weirdnessNoise=new hm(new lm(t+BigInt(4)),r.weirdness),this.offsetNoise=new hm(new lm(t+BigInt(5)),r.shift),this.jaggedNoise=new hm(i.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const i=dm.create(t).fork();this.blendedNoise=new _m(i.forkWithHashOf("minecraft:terrain"),e.sampling,Hp.cellWidth(e),Hp.cellHeight(e)),this.temperatureNoise=new hm(i.forkWithHashOf("minecraft:temperature"),r.temperature),this.humidityNoise=new hm(i.forkWithHashOf("minecraft:vegetation"),r.humidity),this.continentalnessNoise=new hm(i.forkWithHashOf("minecraft:continentalness"),r.continentalness),this.erosionNoise=new hm(i.forkWithHashOf("minecraft:erosion"),r.erosion),this.weirdnessNoise=new hm(i.forkWithHashOf("minecraft:ridge"),r.weirdness),this.offsetNoise=new hm(i.forkWithHashOf("minecraft:offset"),r.shift),this.jaggedNoise=new hm(i.forkWithHashOf("minecraft:jagged"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=e.terrainShaper,this.baseNoise=e=>{const t=e.createNoiseInterpolator(((t,r,i)=>this.calculateBaseNoise(t,r,i,e.getNoiseData(t>>2,i>>2).terrainInfo)));return()=>t.sample()}}noiseData(e,t){const r=e+this.getOffset(e,0,t),i=t+this.getOffset(t,e,0),n=this.getContinentalness(r,i),o=this.getErosion(r,i),a=this.getWeirdness(r,i),s=this.terrainInfo(n,o,a);return Gp.create(r,i,n,o,a,s)}sample(e,t,r){return this.target(e,t,r,this.noiseData(e,r))}target(e,t,r,i){const n=i.shiftedX,o=t+this.getOffset(t,r,e),a=i.shiftedZ,s=this.getTemperature(n,o,a),c=this.getHumidity(n,o,a),l=this.computeDimensionDensity(t<<2,i.terrainInfo);return Xp.target(s,c,i.continentalness,i.erosion,l,i.weirdness)}terrainInfo(e,t,r){const i=ym.point(e,t,r),n=this.shaper.offset(i),o=this.shaper.factor(i),a=this.shaper.jaggedness(i);return Zp.create(n,o,a)}getOffset(e,t,r){return 4*this.offsetNoise.sample(e,t,r)}getTemperature(e,t,r){return this.temperatureNoise.sample(e,t,r)}getHumidity(e,t,r){return this.humidityNoise.sample(e,t,r)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t){const r=this.baseNoise(e);return(e,i,n)=>{let o=r();return o=nm(.64*o,-1,1),o=o/2-o*o*o/24,o+=t(e,i,n),o>0?null:em.AIR}}calculateBaseNoise(e,t,r,i){let n=this.blendedNoise.sample(e,t,r);if(i){const o=this.sampleJaggedNoise(i.jaggedness,e,r),a=this.computeDimensionDensity(t,i),s=i.factor*(o+a);n+=s>0?4*s:s}return n=nm(n,-64,64),n=this.applySlide(n,t/Hp.cellHeight(this.settings)),n=nm(n,-64,64),n}sampleJaggedNoise(e,t,r){if(0===e)return 0;const i=this.jaggedNoise.sample(1500*t,0,1500*r);return i>0?e*i:e/2*i}computeDimensionDensity(e,t){return 1-e/128+t.offset}applySlide(e,t){const r=t-Hp.minCellY(this.settings);return e=Wp.apply(this.settings.topSlide,e,Hp.cellCountY(this.settings)-r),Wp.apply(this.settings.bottomSlide,e,r)}}(Gp||(Gp={})).create=function(e,t,r,i,n,o){return{shiftedX:e,shiftedZ:t,continentalness:r,weirdness:i,erosion:n,terrainInfo:o}};class wm{constructor(e,t,r){this.biomeSource=t,this.settings=r,this.sampler=new xm(r.noise,e,r.octaves,r.legacyRandomSource),this.materialRule=Jp.fromList([(e,t,r,i)=>e.updateNoiseAndGenerateBaseState(t,r,i)])}fill(e){var t;const r=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=Hp.cellWidth(this.settings.noise),o=Hp.cellHeight(this.settings.noise),a=Math.floor(16/n),s=Math.floor(r/o),c=Math.floor((i-r)/o),l=Rp.minBlockX(e.pos),d=Rp.minBlockZ(e.pos),u=new Nm(a,c,s,this.sampler,l,d,(()=>0),this.settings);u.initializeForFirstCellX();for(let p=0;p=0;a-=1){u.selectCellYZ(a,r);for(let c=o-1;c>=0;c-=1){const m=(s+a)*o+c,_=15&m,h=e.getSectionIndex(m);e.getSectionIndex(i.minBlockY)!==h&&(i=e.getOrCreateSection(h));const f=c/o;u.updateForY(f);for(let e=0;e{var t,r,i;return{distance:null!==(t=Ip.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=Ip.readInt(e.spread))&&void 0!==r?r:0,count:null!==(i=Ip.readInt(e.count))&&void 0!==i?i:0}})),structures:Ip.readMap(r.structures,(e=>{var t,r,i,n,o;return r=null!==(t=Ip.readObject(e))&&void 0!==t?t:{},{spacing:null!==(i=Ip.readInt(r.spacing))&&void 0!==i?i:0,separation:null!==(n=Ip.readInt(r.separation))&&void 0!==n?n:0,salt:null!==(o=Ip.readInt(r.salt))&&void 0!==o?o:0}}))}},(Vp||(Vp={})).fromJson=function(e){var t;const r=null!==(t=Ip.readObject(e))&&void 0!==t?t:{};return{temperature:Up.fromJson(r.temperature),humidity:Up.fromJson(r.humidity),continentalness:Up.fromJson(r.continentalness),erosion:Up.fromJson(r.erosion),weirdness:Up.fromJson(r.weirdness),shift:Up.fromJson(r.shift)}};let Om=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Om.decode();let Sm=null;function Dm(e,t){return Om.decode((null!==Sm&&Sm.buffer===km.memory.buffer||(Sm=new Uint8Array(km.memory.buffer)),Sm).subarray(e,e+t))}const Am=new Uint32Array(2),Cm=new BigInt64Array(Am.buffer);let Em=null;function jm(){return null!==Em&&Em.buffer===km.memory.buffer||(Em=new Int32Array(km.memory.buffer)),Em}let Fm=null;function Bm(){return null!==Fm&&Fm.buffer===km.memory.buffer||(Fm=new Float64Array(km.memory.buffer)),Fm}let Mm=0;function Tm(e,t){const r=t(8*e.length);return Bm().set(e,r/8),Mm=e.length,r}let Lm=null;function Pm(e,t){const r=t(4*e.length);return(null!==Lm&&Lm.buffer===km.memory.buffer||(Lm=new Uint32Array(km.memory.buffer)),Lm).set(e,r/4),Mm=e.length,r}function Im(e,t,r,i,n,o,a,s,c,l,d,u,p,m){var _=Tm(e,km.__wbindgen_malloc),h=Mm,f=Tm(t,km.__wbindgen_malloc),g=Mm,b=Tm(r,km.__wbindgen_malloc),y=Mm,v=Tm(i,km.__wbindgen_malloc),N=Mm,x=Tm(n,km.__wbindgen_malloc),w=Mm,k=Tm(o,km.__wbindgen_malloc),O=Mm,S=Tm(a,km.__wbindgen_malloc),D=Mm,A=Tm(s,km.__wbindgen_malloc),C=Mm,E=Tm(c,km.__wbindgen_malloc),j=Mm,F=Tm(l,km.__wbindgen_malloc),B=Mm,M=Tm(d,km.__wbindgen_malloc),T=Mm,L=Tm(u,km.__wbindgen_malloc),P=Mm,I=Tm(p,km.__wbindgen_malloc),R=Mm,z=Pm(m,km.__wbindgen_malloc),U=Mm,$=km.biome_parameters(_,h,f,g,b,y,v,N,x,w,k,O,S,D,A,C,E,j,F,B,M,T,L,P,I,R,z,U);return qm.__wrap($)}function Rm(e,t,r,i,n,o,a,s,c,l,d,u,p){Cm[0]=e;const m=Am[0],_=Am[1];var h=Tm(r,km.__wbindgen_malloc),f=Mm,g=Tm(n,km.__wbindgen_malloc),b=Mm,y=Tm(a,km.__wbindgen_malloc),v=Mm,N=Tm(c,km.__wbindgen_malloc),x=Mm,w=Tm(d,km.__wbindgen_malloc),k=Mm,O=Tm(p,km.__wbindgen_malloc),S=Mm,D=km.climate_sampler(m,_,t,h,f,i,g,b,o,y,v,s,N,x,l,w,k,u,O,S);return Xm.__wrap(D)}function zm(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function Um(e,t,r,i,n,o,a,s,c,l,d){try{const _=km.__wbindgen_add_to_stack_pointer(-16);zm(e,qm),zm(t,Xm),km.multi_noise(_,e.ptr,t.ptr,r,i,n,o,a,s,c,l,d);var u=jm()[_/4+0],p=jm()[_/4+1],m=function(e,t){return jm().subarray(e/4,e/4+t)}(u,p).slice();return km.__wbindgen_free(u,4*p),m}finally{km.__wbindgen_add_to_stack_pointer(16)}}function $m(e,t,r,i,n,o,a,s,c,l){try{const m=km.__wbindgen_add_to_stack_pointer(-16);zm(e,Xm),km.climate_noise(m,e.ptr,t,r,i,n,o,a,s,c,l);var d=jm()[m/4+0],u=jm()[m/4+1],p=function(e,t){return Bm().subarray(e/8,e/8+t)}(d,u).slice();return km.__wbindgen_free(d,8*u),p}finally{km.__wbindgen_add_to_stack_pointer(16)}}class qm{static __wrap(e){const t=Object.create(qm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();km.__wbg_parameterlist_free(e)}}class Xm{static __wrap(e){const t=Object.create(Xm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();km.__wbg_sampler_free(e)}}async function Jm(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",d.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(Dm(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:i}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(r){if("application/wasm"==e.headers.get("Content-Type"))throw r;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r)}const i=await e.arrayBuffer();return await WebAssembly.instantiate(i,t)}{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}(await e,t);return km=r.exports,Jm.__wbindgen_wasm_module=i,km}var Hm="/assets/deepslate_rs_bg.4990c219.wasm",Wm={exports:{}};Wm.exports=function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(1),n=r(3),o=r(8),a=r(15);function s(e,t,r){var a=null,s=function(e,t){r&&r(e,t),a&&a.visit(e,t)},c="function"==typeof r?s:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var d="boolean"==typeof t.attachComment&&t.attachComment;(l||d)&&((a=new i.CommentHandler).attach=d,t.comment=!0,c=s)}var u,p=!1;t&&"string"==typeof t.sourceType&&(p="module"===t.sourceType),u=t&&"boolean"==typeof t.jsx&&t.jsx?new n.JSXParser(e,t,c):new o.Parser(e,t,c);var m=p?u.parseModule():u.parseScript();return l&&a&&(m.comments=a.comments),u.config.tokens&&(m.tokens=u.tokens),u.config.tolerant&&(m.errors=u.errorHandler.errors),m}t.parse=s,t.parseModule=function(e,t,r){var i=t||{};return i.sourceType="module",s(e,i,r)},t.parseScript=function(e,t,r){var i=t||{};return i.sourceType="script",s(e,i,r)},t.tokenize=function(e,t,r){var i,n=new a.Tokenizer(e,t);i=[];try{for(;;){var o=n.getNextToken();if(!o)break;r&&(o=r(o)),i.push(o)}}catch(s){n.errorHandler.tolerate(s)}return n.errorHandler.tolerant&&(i.errors=n.errors()),i};var c=r(2);t.Syntax=c.Syntax,t.version="4.0.1"},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(2),n=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===i.Syntax.BlockStatement&&0===e.body.length){for(var r=[],n=this.leading.length-1;n>=0;--n){var o=this.leading[n];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(n,1),this.trailing.splice(n,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=e.end.offset&&t.unshift(i.comment)}return this.trailing.length=0,t}var n=this.stack[this.stack.length-1];if(n&&n.node.trailingComments){var o=n.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=n.node.trailingComments,delete n.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var i=(t.leadingComments?t.leadingComments.length:0)-1;i>=0;--i){var n=t.leadingComments[i];n.range[1]<=e.start.offset&&(r.unshift(n),t.leadingComments.splice(i,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(i=this.leading.length-1;i>=0;--i){var o;(o=this.leading[i]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(i,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===i.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),n=this.findLeadingComments(t);n.length>0&&(e.leadingComments=n),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",i={type:r,value:e.value};if(e.range&&(i.range=e.range),e.loc&&(i.loc=e.loc),this.comments.push(i),this.attach){var n={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(n.comment.loc=e.loc),e.type=r,this.leading.push(n),this.trailing.push(n)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=n},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){var i,n=this&&this.__extends||(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(5),s=r(6),c=r(7),l=r(8),d=r(13),u=r(14);function p(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var r=e;t=p(r.namespace)+":"+p(r.name);break;case s.JSXSyntax.JSXMemberExpression:var i=e;t=p(i.object)+"."+p(i.property)}return t}d.TokenName[100]="JSXIdentifier",d.TokenName[101]="JSXText";var m=function(e){function t(t,r,i){return e.call(this,t,r,i)||this}return n(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,i=!1,n=!1,a=!1;!this.scanner.eof()&&r&&!i;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(i=";"===s,t+=s,++this.scanner.index,!i)switch(t.length){case 2:n="#"===s;break;case 3:n&&(r=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),n=n&&!a);break;default:r=(r=r&&!(n&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(r&&i&&t.length>2){var c=t.substr(1,t.length-2);n&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):n||a||!u.XHTMLEntities[c]||(t=u.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],i="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==r;)i+="&"===c?this.scanXHTMLEntity(r):c;return{type:8,value:i,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var n=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===n&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var i={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(i)),i},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var i=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(r,i))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var n=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(n,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=r;this.expectJSX(":");var n=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(i,n))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,i,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var r=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(r,n,i))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],i=null;if(!t.selfClosing){var n=this.parseComplexJSXElement({node:e,opening:t,closing:i,children:r});r=n.children,i=n.closing}return this.finalize(e,new a.JSXElement(t,r,i))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(6),n=function(e){this.type=i.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=n;var o=function(e,t,r){this.type=i.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var a=function(){this.type=i.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=i.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=i.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=i.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var d=function(e,t){this.type=i.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=d;var u=function(e,t){this.type=i.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=u;var p=function(e,t,r){this.type=i.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=p;var m=function(e){this.type=i.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=m;var _=function(e,t){this.type=i.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=_},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(2),n=function(e){this.type=i.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=n;var o=function(e){this.type=i.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,r){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,r){this.type=i.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=s;var c=function(e,t){this.type=i.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,r){this.type=i.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=l;var d=function(e,t,r){this.type=i.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=d;var u=function(e,t,r){this.type=i.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=u;var p=function(e){this.type=i.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=p;var m=function(e,t,r){var n="||"===e||"&&"===e;this.type=n?i.Syntax.LogicalExpression:i.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=m;var _=function(e){this.type=i.Syntax.BlockStatement,this.body=e};t.BlockStatement=_;var h=function(e){this.type=i.Syntax.BreakStatement,this.label=e};t.BreakStatement=h;var f=function(e,t){this.type=i.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=f;var g=function(e,t){this.type=i.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=g;var b=function(e){this.type=i.Syntax.ClassBody,this.body=e};t.ClassBody=b;var y=function(e,t,r){this.type=i.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=y;var v=function(e,t,r){this.type=i.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=v;var N=function(e,t){this.type=i.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=N;var x=function(e,t,r){this.type=i.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=x;var w=function(e){this.type=i.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=w;var k=function(){this.type=i.Syntax.DebuggerStatement};t.DebuggerStatement=k;var O=function(e,t){this.type=i.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=O;var S=function(e,t){this.type=i.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=S;var D=function(){this.type=i.Syntax.EmptyStatement};t.EmptyStatement=D;var A=function(e){this.type=i.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=A;var C=function(e){this.type=i.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=C;var E=function(e,t,r){this.type=i.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=E;var j=function(e,t){this.type=i.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=j;var F=function(e){this.type=i.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=F;var B=function(e,t,r){this.type=i.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=B;var M=function(e,t,r){this.type=i.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=M;var T=function(e,t,r,n){this.type=i.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=n};t.ForStatement=T;var L=function(e,t,r,n){this.type=i.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=n,this.expression=!1,this.async=!1};t.FunctionDeclaration=L;var P=function(e,t,r,n){this.type=i.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=n,this.expression=!1,this.async=!1};t.FunctionExpression=P;var I=function(e){this.type=i.Syntax.Identifier,this.name=e};t.Identifier=I;var R=function(e,t,r){this.type=i.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=R;var z=function(e,t){this.type=i.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=z;var U=function(e){this.type=i.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=U;var $=function(e){this.type=i.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=$;var q=function(e,t){this.type=i.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=q;var X=function(e,t){this.type=i.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=X;var J=function(e,t){this.type=i.Syntax.Literal,this.value=e,this.raw=t};t.Literal=J;var H=function(e,t){this.type=i.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var W=function(e,t,r,n,o){this.type=i.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=n,this.static=o};t.MethodDefinition=W;var Z=function(e){this.type=i.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=Z;var G=function(e,t){this.type=i.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=G;var K=function(e){this.type=i.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=K;var Y=function(e){this.type=i.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var V=function(e,t,r,n,o,a){this.type=i.Syntax.Property,this.key=t,this.computed=r,this.value=n,this.kind=e,this.method=o,this.shorthand=a};t.Property=V;var Q=function(e,t,r,n){this.type=i.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:n}};t.RegexLiteral=Q;var ee=function(e){this.type=i.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=i.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=i.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ie=function(e){this.type=i.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ie;var ne=function(e){this.type=i.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ne;var oe=function(e,t){this.type=i.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=i.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=i.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=i.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=i.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var de=function(e,t){this.type=i.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=de;var ue=function(e,t){this.type=i.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=ue;var pe=function(){this.type=i.Syntax.ThisExpression};t.ThisExpression=pe;var me=function(e){this.type=i.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=me;var _e=function(e,t,r){this.type=i.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=_e;var he=function(e,t){this.type=i.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=he;var fe=function(e,t,r){this.type=i.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=fe;var ge=function(e,t){this.type=i.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=ge;var be=function(e,t){this.type=i.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ye=function(e,t){this.type=i.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ye;var ve=function(e,t){this.type=i.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ve;var Ne=function(e,t){this.type=i.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=Ne},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(9),n=r(10),o=r(11),a=r(7),s=r(12),c=r(2),l=r(13),d="ArrowParameterPlaceHolder",u=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var n=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=i,n},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,i=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var n=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=i||this.context.firstCoverInitializedNameError,n},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,i=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(i,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(i,new a.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(i,new a.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(i,new a.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(i,new a.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(i,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(i,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var i=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,i},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,i,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new a.AsyncFunctionExpression(null,i.params,n))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var i=this.getTokenRaw(r);e=this.finalize(t,new a.Literal(r.value,i));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),i=this.lookahead,n=null,s=null,c=!1,l=!1,d=!1,u=!1;if(3===i.type){var p=i.value;this.nextToken(),c=this.match("["),n=(u=!(this.hasLineTerminator||"async"!==p||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new a.Identifier(p))}else this.match("*")?this.nextToken():(c=this.match("["),n=this.parseObjectPropertyKey());var m=this.qualifiedPropertyName(this.lookahead);if(3===i.type&&!u&&"get"===i.value&&m)t="get",c=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===i.type&&!u&&"set"===i.value&&m)t="set",c=this.match("["),n=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===i.type&&"*"===i.value&&m)t="init",c=this.match("["),n=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!u)!c&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=u?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===i.type)if(p=this.finalize(r,new a.Identifier(i.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),d=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(r,new a.AssignmentPattern(p,_))}else d=!0,s=p;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new a.Property(t,n,c,s,l,d))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){i.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],i=this.parseTemplateHead();for(r.push(i);!i.tail;)t.push(this.parseExpression()),i=this.parseTemplateElement(),r.push(i);return this.finalize(e,new a.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:d,params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:d,params:[e],async:!1};else{var i=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var n=[];for(this.context.isAssignmentTarget=!1,n.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(i=!0,e={type:d,params:[e],async:!1}),!i)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var n=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,r.value,s],l=[i];!((i=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&i<=l[l.length-1];){s=c.pop();var d=c.pop();l.pop(),o=c.pop(),n.pop();var u=this.startNode(n[n.length-1]);c.push(this.finalize(u,new a.BinaryExpression(d,o,s)))}c.push(this.nextToken().value),l.push(i),n.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=c.length-1;t=c[p];for(var m=n.pop();p>1;){var _=n.pop(),h=m&&m.lineStart;u=this.startNode(_,h),d=c[p-1],t=this.finalize(u,new a.BinaryExpression(d,c[p-2],t)),p-=2,m=_}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var i=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var n=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,i,n)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var p=this.context.allowYield,m=this.context.await;this.context.allowYield=!0,this.context.await=n;var _=this.startNode(t);this.expect("=>");var h=void 0;if(this.match("{")){var f=this.context.allowIn;this.context.allowIn=!0,h=this.parseFunctionSourceElements(),this.context.allowIn=f}else h=this.isolateCoverGrammar(this.parseAssignmentExpression);var g=h.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=n?this.finalize(_,new a.AsyncArrowFunctionExpression(s.params,h,g)):this.finalize(_,new a.ArrowFunctionExpression(s.params,h,g)),this.context.strict=l,this.context.allowStrictDirective=u,this.context.allowYield=p,this.context.await=m}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var y=(r=this.nextToken()).value,v=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(y,e,v)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),i=this.parsePattern([],e);this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&i.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),n=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new a.VariableDeclarator(i,n))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;i.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var n=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(n,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var i=this.parsePattern(e,t);return this.finalize(r,new a.RestElement(i))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var i=[];!this.match("]");)if(this.match(","))this.nextToken(),i.push(null);else{if(this.match("...")){i.push(this.parseBindingRestElement(e,t));break}i.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new a.ArrayPattern(i))},e.prototype.parsePropertyPattern=function(e,t){var r,i,n=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;r=this.parseVariableIdentifier();var l=this.finalize(n,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var d=this.parseAssignmentExpression();i=this.finalize(this.startNode(c),new a.AssignmentPattern(l,d))}else this.match(":")?(this.expect(":"),i=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,i=l)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),i=this.parsePatternWithDefault(e,t);return this.finalize(n,new a.Property("init",r,o,i,!1,s))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),i=[];for(this.expect("{");!this.match("}");)i.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new a.ObjectPattern(i))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,i=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var n=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=n,i=this.finalize(this.startNode(r),new a.AssignmentPattern(i,o))}return i},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new a.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(r,i))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new a.IfStatement(i,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(r,i))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var i=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=i}return this.finalize(t,new a.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,i=null,n=null,s=null,l=!0,d=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){i=this.createNode(),this.nextToken();var u=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=u,1===p.length&&this.matchKeyword("in")){var m=p[0];m.init&&(m.id.type===c.Syntax.ArrayPattern||m.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),i=this.finalize(i,new a.VariableDeclaration(p,"var")),this.nextToken(),e=i,t=this.parseExpression(),i=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new a.VariableDeclaration(p,"var")),this.nextToken(),e=i,t=this.parseAssignmentExpression(),i=null,l=!1):(i=this.finalize(i,new a.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){i=this.createNode();var _=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(u=this.context.allowIn,this.context.allowIn=!1,p=this.parseBindingList(_,{inFor:!0}),this.context.allowIn=u,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(i=this.finalize(i,new a.VariableDeclaration(p,_)),this.nextToken(),e=i,t=this.parseExpression(),i=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(i=this.finalize(i,new a.VariableDeclaration(p,_)),this.nextToken(),e=i,t=this.parseAssignmentExpression(),i=null,l=!1):(this.consumeSemicolon(),i=this.finalize(i,new a.VariableDeclaration(p,_)))):(i=this.finalize(i,new a.Identifier(_)),this.nextToken(),e=i,t=this.parseExpression(),i=null)}else{var h=this.lookahead;if(u=this.context.allowIn,this.context.allowIn=!1,i=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=u,this.matchKeyword("in"))this.context.isAssignmentTarget&&i.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(i),e=i,t=this.parseExpression(),i=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&i.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(i),e=i,t=this.parseAssignmentExpression(),i=null,l=!1;else{if(this.match(",")){for(var f=[i];this.match(",");)this.nextToken(),f.push(this.isolateCoverGrammar(this.parseAssignmentExpression));i=this.finalize(this.startNode(h),new a.SequenceExpression(f))}this.expect(";")}}if(void 0===e&&(this.match(";")||(n=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var g=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=g}return void 0===e?this.finalize(d,new a.ForStatement(i,n,s,r)):l?this.finalize(d,new a.ForInStatement(e,t,r)):this.finalize(d,new a.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var i="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),i="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var i=[],n=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(n&&this.throwError(o.Messages.MultipleDefaultsInSwitch),n=!0),i.push(s)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new a.SwitchStatement(t,i))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var i=r,n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)&&this.throwError(o.Messages.Redeclaration,"Label",i.name),this.context.labelSet[n]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,d=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):d.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=d}else s=this.parseStatement();delete this.context.labelSet[n],e=new a.LabeledStatement(i,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),i={},n=0;n0&&this.tolerateError(o.Messages.BadGetterArity);var i=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,i,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var i=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,i,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,i,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var i=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=i}return this.finalize(e,new a.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),i="",n=null,s=null,c=!1,l=!1,d=!1,u=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(n=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,d=!0,c=this.match("["),this.match("*")?this.nextToken():n=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var p=this.lookahead.value;":"!==p&&"("!==p&&"*"!==p&&(u=!0,t=this.lookahead,n=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var m=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&m?(i="get",c=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&m&&(i="set",c=this.match("["),n=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&m&&(i="init",c=this.match("["),n=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!i&&n&&this.match("(")&&(i="init",s=u?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),i||this.throwUnexpectedToken(this.lookahead),"init"===i&&(i="method"),c||(d&&this.isPropertyKey(n,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!d&&this.isPropertyKey(n,"constructor")&&(("method"!==i||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,i="constructor")),this.finalize(r,new a.MethodDefinition(n,c,s,i,d))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new a.ClassDeclaration(i,n,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var n=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(r,i,n))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(i,this.lookahead.value)}this.nextToken();var n=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(n))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(i=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(i,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=u},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(i){Object.create&&Object.defineProperty&&(r=Object.create(i),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,i){var n="Line "+t+": "+i,o=this.constructError(n,r);return o.index=e,o.lineNumber=t,o.description=i,o},e.prototype.throwError=function(e,t,r,i){throw this.createError(e,t,r,i)},e.prototype.tolerateError=function(e,t,r,i){var n=this.createError(e,t,r,i);if(!this.tolerant)throw n;this.recordError(n)},e}();t.ErrorHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(9),n=r(4),o=r(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,i=[];for(this.trackComment&&(i=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,n.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};i.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,i}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},i.push(a)),i},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(n.Character.isLineTerminator(i))13===i&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===i){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(n.Character.isWhiteSpace(r))++this.index;else if(n.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var i=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(i)),t=!0}else{if(42!==r)break;this.index+=2,i=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(i))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,i=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(i))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,i=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(i))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,i=0;i1114111||"}"!==e)&&this.throwUnexpectedToken(),n.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!n.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=n.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&n.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),n.Character.isIdentifierPart(t));)r+=e=n.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&n.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=s(e);return!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+s(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var i=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=i}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&n.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),n.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(n.Character.isIdentifierStart(t)||n.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",i=!1;for(n.Character.isOctalDigit(e.charCodeAt(0))?(i=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&n.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return i||0!==r.length||this.throwUnexpectedToken(),(n.Character.isIdentifierStart(this.source.charCodeAt(this.index))||n.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var n=parseInt(t||r,16);return n>1114111&&i.throwUnexpectedToken(o.Messages.InvalidRegExp),n<=65535?String.fromCharCode(n):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(r)}catch(n){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];i.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],n.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(n.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){a=!0;break}"["===e&&(r=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!n.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,i=this.scanHexEscape("u");if(null!==i)for(e+=i;r=55296&&e<57343&&n.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var i=r(10),n=r(12),o=r(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(i=this.values[this.curly-4])&&!this.beforeFunctionExpression(i);else if("function"===this.values[this.curly-4]){var i;t=!(i=this.values[this.curly-5])||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new n.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?n-4:n;for(r=0;r>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=Vm[e.charCodeAt(r)]<<2|Vm[e.charCodeAt(r+1)]>>4,a[s++]=255&t);1===o&&(t=Vm[e.charCodeAt(r)]<<10|Vm[e.charCodeAt(r+1)]<<4|Vm[e.charCodeAt(r+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,r=e.length,i=r%3,n=[],o=16383,a=0,s=r-i;as?s:a+o));1===i?(t=e[r-1],n.push(Ym[t>>2]+Ym[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],n.push(Ym[t>>10]+Ym[t>>4&63]+Ym[t<<2&63]+"="));return n.join("")}},Ym=[],Vm=[],Qm="undefined"!=typeof Uint8Array?Uint8Array:Array,e_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t_=0,r_=e_.length;t_0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function n_(e,t,r){for(var i,n,o=[],a=t;a>18&63]+Ym[n>>12&63]+Ym[n>>6&63]+Ym[63&n]);return o.join("")}Vm["-".charCodeAt(0)]=62,Vm["_".charCodeAt(0)]=63;var o_={}; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function a_(e){return Object.prototype.toString.call(e)}o_.read=function(e,t,r,i,n){var o,a,s=8*n-i-1,c=(1<>1,d=-7,u=r?n-1:0,p=r?-1:1,m=e[t+u];for(u+=p,o=m&(1<<-d)-1,m>>=-d,d+=s;d>0;o=256*o+e[t+u],u+=p,d-=8);for(a=o&(1<<-d)-1,o>>=-d,d+=i;d>0;a=256*a+e[t+u],u+=p,d-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(m?-1:1);a+=Math.pow(2,i),o-=l}return(m?-1:1)*a*Math.pow(2,o-i)},o_.write=function(e,t,r,i,n,o){var a,s,c,l=8*o-n-1,d=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,m=i?0:o-1,_=i?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=d):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+u>=1?p/c:p*Math.pow(2,1-u))*c>=2&&(a++,c/=2),a+u>=d?(s=0,a=d):a+u>=1?(s=(t*c-1)*Math.pow(2,n),a+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,n),a=0));n>=8;e[r+m]=255&s,m+=_,s/=256,n-=8);for(a=a<0;e[r+m]=255&a,m+=_,a/=256,l-=8);e[r+m-_]|=128*h}, +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +function(e){const t=Km,r=o_,i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const n=2147483647;function o(e){if(e>n)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,r)}function s(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let i=o(r);const n=i.write(e,t);n!==r&&(i=i.slice(0,n));return i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return u(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return u(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return u(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return a.from(i,t,r);const n=function(e){if(a.isBuffer(e)){const t=0|p(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||Z(e.length)?o(0):d(e);if("Buffer"===e.type&&Array.isArray(e.data))return d(e.data)}(e);if(n)return n;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|p(e))}function d(e){const t=e.length<0?0:0|p(e.length),r=o(t);for(let i=0;i=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return 0|e}function m(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===r)return 0;let n=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return X(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return J(e).length;default:if(n)return i?-1:X(e).length;t=(""+t).toLowerCase(),n=!0}}function _(e,t,r){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return S(this,t,r);case"latin1":case"binary":return D(this,t,r);case"base64":return w(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function h(e,t,r){const i=e[t];e[t]=e[r],e[r]=i}function f(e,t,r,i,n){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Z(r=+r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=a.from(t,i)),a.isBuffer(t))return 0===t.length?-1:g(e,t,r,i,n);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,i,n);throw new TypeError("val must be string, number or Buffer")}function g(e,t,r,i,n){let o,a=1,s=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(n){let i=-1;for(o=r;os&&(r=s-c),o=r;o>=0;o--){let r=!0;for(let i=0;in&&(i=n):i=n;const o=t.length;let a;for(i>o/2&&(i=o/2),a=0;a>8,n=r%256,o.push(n),o.push(i);return o}(t,e.length-r),e,r,i)}function w(e,r,i){return 0===r&&i===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,i))}function k(e,t,r){r=Math.min(e.length,r);const i=[];let n=t;for(;n239?4:t>223?3:t>191?2:1;if(n+a<=r){let r,i,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:r=e[n+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(o=c));break;case 3:r=e[n+1],i=e[n+2],128==(192&r)&&128==(192&i)&&(c=(15&t)<<12|(63&r)<<6|63&i,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:r=e[n+1],i=e[n+2],s=e[n+3],128==(192&r)&&128==(192&i)&&128==(192&s)&&(c=(15&t)<<18|(63&r)<<12|(63&i)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|1023&o),i.push(o),n+=a}return function(e){const t=e.length;if(t<=O)return String.fromCharCode.apply(String,e);let r="",i=0;for(;ii.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(i,n)):Uint8Array.prototype.set.call(i,t,n);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,n)}n+=t.length}return i},a.byteLength=m,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(t+=" ... "),""},i&&(a.prototype[i]=a.prototype.inspect),a.prototype.compare=function(e,t,r,i,n){if(W(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),t<0||r>e.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&t>=r)return 0;if(i>=n)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(n>>>=0)-(i>>>=0),s=(r>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(i,n),d=e.slice(t,r);for(let a=0;a>>=0,isFinite(r)?(r>>>=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}const n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":case"latin1":case"binary":return v(this,e,t,r);case"base64":return N(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const O=4096;function S(e,t,r){let i="";r=Math.min(e.length,r);for(let n=t;ni)&&(r=i);let n="";for(let o=t;or)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,r,i,n,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||te.length)throw new RangeError("Index out of range")}function F(e,t,r,i,n){z(t,i,n,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function B(e,t,r,i,n){z(t,i,n,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function M(e,t,r,i,n,o){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(e,t,i,n,o){return t=+t,i>>>=0,o||M(e,0,i,4),r.write(e,t,i,n,23,4),i+4}function L(e,t,i,n,o){return t=+t,i>>>=0,o||M(e,0,i,8),r.write(e,t,i,n,52,8),i+8}a.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||E(e,t,this.length);let i=this[e],n=1,o=0;for(;++o>>=0,t>>>=0,r||E(e,t,this.length);let i=this[e+--t],n=1;for(;t>0&&(n*=256);)i+=this[e+--t]*n;return i},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=K((function(e){U(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,n=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(i)+(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],n=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(i)<>>=0,t>>>=0,r||E(e,t,this.length);let i=this[e],n=1,o=0;for(;++o=n&&(i-=Math.pow(2,8*t)),i},a.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);let i=t,n=1,o=this[e+--i];for(;i>0&&(n*=256);)o+=this[e+--i]*n;return n*=128,o>=n&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||E(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(e,t){e>>>=0,t||E(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=K((function(e){U(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||E(e,4,this.length),r.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||E(e,4,this.length),r.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||E(e,8,this.length),r.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||E(e,8,this.length),r.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,r,i){if(e=+e,t>>>=0,r>>>=0,!i){j(this,e,t,r,Math.pow(2,8*r)-1,0)}let n=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,!i){j(this,e,t,r,Math.pow(2,8*r)-1,0)}let n=r-1,o=1;for(this[t+n]=255&e;--n>=0&&(o*=256);)this[t+n]=e/o&255;return t+r},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=K((function(e,t=0){return F(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=K((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*r-1);j(this,e,t,r,i-1,-i)}let n=0,o=1,a=0;for(this[t]=255&e;++n>0)-a&255;return t+r},a.prototype.writeIntBE=function(e,t,r,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*r-1);j(this,e,t,r,i-1,-i)}let n=r-1,o=1,a=0;for(this[t+n]=255&e;--n>=0&&(o*=256);)e<0&&0===a&&0!==this[t+n+1]&&(a=1),this[t+n]=(e/o>>0)-a&255;return t+r},a.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=K((function(e,t=0){return F(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=K((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,r){return T(this,e,t,!0,r)},a.prototype.writeFloatBE=function(e,t,r){return T(this,e,t,!1,r)},a.prototype.writeDoubleLE=function(e,t,r){return L(this,e,t,!0,r)},a.prototype.writeDoubleBE=function(e,t,r){return L(this,e,t,!1,r)},a.prototype.copy=function(e,t,r,i){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(n=t;n=i+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function z(e,t,r,i,n,o){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(o+1)}${i}`:`>= -(2${i} ** ${8*(o+1)-1}${i}) and < 2 ** ${8*(o+1)-1}${i}`:`>= ${t}${i} and <= ${r}${i}`,new P.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){U(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||$(t,e.length-(r+1))}(i,n,o)}function U(e,t){if("number"!=typeof e)throw new P.ERR_INVALID_ARG_TYPE(t,"number",e)}function $(e,t,r){if(Math.floor(e)!==e)throw U(e,r),new P.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new P.ERR_BUFFER_OUT_OF_BOUNDS;throw new P.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}I("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),I("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),I("ERR_OUT_OF_RANGE",(function(e,t,r){let i=`The value of "${e}" is out of range.`,n=r;return Number.isInteger(r)&&Math.abs(r)>2**32?n=R(String(r)):"bigint"==typeof r&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=R(n)),n+="n"),i+=` It must be ${t}. Received ${n}`,i}),RangeError);const q=/[^+/0-9A-Za-z-_]/g;function X(e,t){let r;t=t||1/0;const i=e.length;let n=null;const o=[];for(let a=0;a55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(t-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function J(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,r,i){let n;for(n=0;n=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Z(e){return e!=e}const G=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const i=16*r;for(let n=0;n<16;++n)t[i+n]=e[r]+e[n]}return t}();function K(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(Gm),Zm.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===a_(e)},Zm.isBoolean=function(e){return"boolean"==typeof e},Zm.isNull=function(e){return null===e},Zm.isNullOrUndefined=function(e){return null==e},Zm.isNumber=function(e){return"number"==typeof e},Zm.isString=function(e){return"string"==typeof e},Zm.isSymbol=function(e){return"symbol"==typeof e},Zm.isUndefined=function(e){return void 0===e},Zm.isRegExp=function(e){return"[object RegExp]"===a_(e)},Zm.isObject=function(e){return"object"==typeof e&&null!==e},Zm.isDate=function(e){return"[object Date]"===a_(e)},Zm.isError=function(e){return"[object Error]"===a_(e)||e instanceof Error},Zm.isFunction=function(e){return"function"==typeof e},Zm.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},Zm.isBuffer=Gm.Buffer.isBuffer;const s_=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let c_;const l_=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function d_(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const r=l_(e),i=l_(t);let n=0;return ri&&(t*=s_[r-i-1],e/=10,n=1),e===t?n:e=0;)n++;return n-t}function p_(e,t,r){for(r--;t>>1;n(r,e[t])<0?s=t:a=t+1}let c=i-a;switch(c){case 3:e[a+3]=e[a+2],c_[a+3]=c_[a+2];case 2:e[a+2]=e[a+1],c_[a+2]=c_[a+1];case 1:e[a+1]=e[a],c_[a+1]=c_[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],c_[a+c]=c_[a+c-1],c--}e[a]=r,c_[a]=o}}function __(e,t,r,i,n,o){let a=0,s=0,c=1;if(o(e,t[r+n])>0){for(s=i-n;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=n,c+=n}else{for(s=n+1;cs&&(c=s);const i=a;a=n-c,c=n-i}for(a++;a>>1);o(e,t[r+i])>0?a=i+1:c=i}return c}function h_(e,t,r,i,n,o){let a=0,s=0,c=1;if(o(e,t[r+n])<0){for(s=n+1;cs&&(c=s);const i=a;a=n-c,c=n-i}else{for(s=i-n;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=n,c+=n}for(a++;a>>1);o(e,t[r+i])<0?c=i:a=i+1}return c}class f_{constructor(e,t){this.array=e,this.compare=t;const{length:r}=e;this.length=r,this.minGallop=7,this.tmpStorageLength=r<512?r>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=r<120?5:r<1542?10:r<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||r>=7);if(m)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[m+c]=o[p+c],c_[m+c]=c_[p+c];return o[u]=a[d],void(c_[u]=s[d])}let{minGallop:_}=this;for(;;){let r=0,h=0,f=!1;do{if(n(a[d],o[l])<0){if(o[u]=o[l],c_[u]=c_[l],u--,l--,r++,h=0,0==--t){f=!0;break}}else if(o[u]=a[d],c_[u]=s[d],u--,d--,h++,r=0,1==--i){f=!0;break}}while((r|h)<_);if(f)break;do{if(r=t-h_(a[d],o,e,t,t-1,n),0!==r){for(u-=r,l-=r,t-=r,m=u+1,p=l+1,c=r-1;c>=0;c--)o[m+c]=o[p+c],c_[m+c]=c_[p+c];if(0===t){f=!0;break}}if(o[u]=a[d],c_[u]=s[d],u--,d--,1==--i){f=!0;break}if(h=i-__(o[l],a,0,i,i-1,n),0!==h){for(u-=h,d-=h,i-=h,m=u+1,p=d+1,c=0;c=7||h>=7);if(f)break;_<0&&(_=0),_+=2}if(this.minGallop=_,_<1&&(this.minGallop=1),1===i){for(u-=t,l-=t,m=u+1,p=l+1,c=t-1;c>=0;c--)o[m+c]=o[p+c],c_[m+c]=c_[p+c];o[u]=a[d],c_[u]=s[d]}else{if(0===i)throw new Error("mergeHigh preconditions were not respected");for(p=u-(i-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=u_(e,r,i,t),sl&&(i=l),m_(e,r,r+i,r+s,t),s=i}c.pushRun(r,s),c.mergeRuns(),a-=s,r+=s}while(0!==a);return c.forceMergeRuns(),c_}};const b_=Object.prototype.hasOwnProperty;const y_=(e,t)=>b_.call(e,t),{isObject:v_,isArray:N_}=Zm,x_="before",w_="before-all",k_="after-all",O_=[x_,"after-prop","after-colon","after-value","after"],S_=[x_,w_,k_].map(Symbol.for),D_=(e,t)=>Symbol.for(e+":"+t),A_=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0}),C_=(e,t,r,i,n,o)=>{const a=D_(n,i);if(!y_(t,a))return;const s=r===i?a:D_(n,r);A_(e,s,t[a]),o&&delete t[a]},E_=(e,t,r,i,n)=>{O_.forEach((o=>{C_(e,t,r,i,o,n)}))},j_=(e,t)=>{S_.forEach((r=>{const i=t[r];i&&A_(e,r,i)}))};var F_={SYMBOL_PREFIXES:O_,PREFIX_BEFORE:x_,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:w_,PREFIX_AFTER_ALL:k_,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:D_,define:A_,copy_comments:E_,swap_comments:(e,t,r)=>{t!==r&&O_.forEach((i=>{const n=D_(i,r);if(!y_(e,n))return void C_(e,e,r,t,i,!0);const o=e[n];delete e[n],C_(e,e,r,t,i,!0),A_(e,D_(i,t),o)}))},assign_non_prop_comments:j_,assign(e,t,r){if(!v_(e))throw new TypeError("Cannot convert undefined or null to object");if(!v_(t))return e;if(undefined===r)r=Object.keys(t),j_(e,t);else{if(!N_(r))throw new TypeError("keys must be array or undefined");0===r.length&&j_(e,t)}return((e,t,r)=>(r.forEach((r=>{y_(t,r)&&(e[r]=t[r],E_(e,t,r,r))})),e))(e,t,r)}};const{isArray:B_}=Zm,{sort:M_}=g_,{SYMBOL_PREFIXES:T_,UNDEFINED:L_,symbol:P_,copy_comments:I_,swap_comments:R_}=F_,z_=(e,t,r,i,n)=>{I_(e,t,r+i,r,n)},U_=(e,t,r,i,n,o)=>{if(n>0){let a=i;for(;a-- >0;)z_(e,t,r+a,n,o);return}let a=0;for(;a{T_.forEach((r=>{const i=P_(r,t);delete e[i]}))};class q_ extends Array{splice(...e){const{length:t}=this,r=super.splice(...e);let[i,n,...o]=e;i<0&&(i+=t),n=1===arguments.length?t-i:Math.min(t-i,n);const{length:a}=o,s=i+n;return U_(this,this,s,t-s,a-n,!0),r}slice(...e){const{length:t}=this,r=super.slice(...e);if(!r.length)return new q_;let[i,n]=e;return n===L_?n=t:n<0&&(n+=t),i<0?i+=t:i===L_&&(i=0),U_(r,this,i,n-i,-i),r}unshift(...e){const{length:t}=this,r=super.unshift(...e),{length:i}=e;return i>0&&U_(this,this,0,t,i,!0),r}shift(){const e=super.shift(),{length:t}=this;return $_(this,0),U_(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let r=0;const i=t/2;for(;r{const i=t;t+=B_(e)?e.length:1,e instanceof q_&&U_(r,e,0,e.length,i)})),r):r}sort(...e){const t=M_(this,...e.slice(0,1)),r=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const i=((e,t)=>{let r=t;for(;r in e;)r=e[r];return r})(r,e);i!==t&&(r[t]=i,R_(this,t,i))})),this}}var X_={CommentArray:q_};const J_=Wm.exports,{CommentArray:H_}=X_,{PREFIX_BEFORE:W_,PREFIX_AFTER_PROP:Z_,PREFIX_AFTER_COLON:G_,PREFIX_AFTER_VALUE:K_,PREFIX_AFTER:Y_,PREFIX_BEFORE_ALL:V_,PREFIX_AFTER_ALL:Q_,BRACKET_OPEN:eh,BRACKET_CLOSE:th,CURLY_BRACKET_OPEN:rh,CURLY_BRACKET_CLOSE:ih,COLON:nh,COMMA:oh,MINUS:ah,EMPTY:sh,UNDEFINED:ch,define:lh,assign_non_prop_comments:dh}=F_,uh=e=>J_.tokenize(e,{comment:!0,loc:!0}),ph=[];let mh=null,_h=null;const hh=[];let fh,gh,bh=!1,yh=!1,vh=null,Nh=null,xh=null,wh=null;const kh=()=>{hh.length=ph.length=0,Nh=null,fh=ch},Oh=e=>Symbol.for(fh!==ch?e+nh+fh:e),Sh=(e,t)=>wh?wh(e,t):t,Dh=()=>{const e=new SyntaxError(`Unexpected token ${xh.value.slice(0,1)}`);throw Object.assign(e,xh.loc.start),e},Ah=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,Nh?Nh.loc.end:{line:1,column:0}),e},Ch=()=>{const e=vh[++gh];yh=xh&&e&&xh.loc.end.line===e.loc.start.line||!1,Nh=xh,xh=e},Eh=()=>(xh||Ah(),"Punctuator"===xh.type?xh.value:xh.type),jh=e=>Eh()===e,Fh=e=>{jh(e)||Dh()},Bh=e=>{ph.push(mh),mh=e},Mh=()=>{mh=ph.pop()},Th=()=>{if(!_h)return;const e=[];for(const r of _h){if(!r.inline)break;e.push(r)}const{length:t}=e;t&&(t===_h.length?_h=null:_h.splice(0,t),lh(mh,Oh(Y_),e))},Lh=e=>{_h&&(lh(mh,Oh(e),_h),_h=null)},Ph=e=>{const t=[];for(;xh&&(jh("LineComment")||jh("BlockComment"));){const e=c(s({},xh),{inline:yh});t.push(e),Ch()}bh||t.length&&(e?lh(mh,Oh(e),t):_h=t)},Ih=(e,t)=>{t&&hh.push(fh),fh=e},Rh=()=>{fh=hh.pop()};function zh(){let e=Eh();if(e===rh)return Ch(),(()=>{const e={};Bh(e),Ih(ch,!0);let t,r=!1;for(Ph();!(jh(ih)||r&&(Lh(K_),Fh(oh),Ch(),Ph(),Th(),jh(ih)));)r=!0,Fh("String"),t=JSON.parse(xh.value),Ih(t),Lh(W_),Ch(),Ph(Z_),Fh(nh),Ch(),Ph(G_),e[t]=Sh(t,zh()),Ph();return r&&Lh(Y_),Ch(),fh=void 0,r||Lh(W_),Mh(),Rh(),e})();if(e===eh)return Ch(),(()=>{const e=new H_;Bh(e),Ih(ch,!0);let t=!1,r=0;for(Ph();!(jh(th)||t&&(Lh(K_),Fh(oh),Ch(),Ph(),Th(),jh(th)));)t=!0,Ih(r),Lh(W_),e[r]=Sh(r,zh()),r++,Ph();return t&&Lh(Y_),Ch(),fh=void 0,t||Lh(W_),Mh(),Rh(),e})();let t,r=sh;switch(e===ah&&(Ch(),e=Eh(),r=ah),e){case"String":case"Boolean":case"Null":case"Numeric":return t=xh.value,Ch(),JSON.parse(r+t)}}var Uh,$h={parse:(e,t,r)=>{kh(),vh=uh(e),wh=t,bh=r,vh.length||Ah(),gh=-1,Ch(),Bh({}),Ph(V_);let i=zh();var n;return Ph(Q_),xh&&Dh(),r||null===i||(n=i,Object(n)!==n&&(i=new Object(i)),dh(i,mh)),Mh(),i=Sh("",i),kh(),vh.length=0,_h=mh=vh=Nh=xh=wh=null,i},tokenize:uh},qh="",Xh=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var r=e.length*t;if(Uh!==e||void 0===Uh)Uh=e,qh="";else if(qh.length>=r)return qh.substr(0,r);for(;r>qh.length&&t>1;)1&t&&(qh+=e),t>>=1,e+=e;return qh=(qh+=e).substr(0,r)}; +/*! + * repeat-string + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */const{isArray:Jh,isObject:Hh,isFunction:Wh,isNumber:Zh,isString:Gh}=Zm,Kh=Xh,{PREFIX_BEFORE_ALL:Yh,PREFIX_BEFORE:Vh,PREFIX_AFTER_PROP:Qh,PREFIX_AFTER_COLON:ef,PREFIX_AFTER_VALUE:tf,PREFIX_AFTER:rf,PREFIX_AFTER_ALL:nf,BRACKET_OPEN:of,BRACKET_CLOSE:af,CURLY_BRACKET_OPEN:sf,CURLY_BRACKET_CLOSE:cf,COLON:lf,COMMA:df,EMPTY:uf,UNDEFINED:pf}=F_,mf=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_f=e=>`${Vh}:${e}`,hf=e=>`${tf}:${e}`,ff=e=>`${rf}:${e}`,gf={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},bf=e=>`"${(e=>(mf.lastIndex=0,mf.test(e)?e.replace(mf,(e=>{const t=gf[e];return"string"==typeof t?t:e})):e))(e)}"`,yf=(e,t,r,i)=>{const n=e[Symbol.for(t)];if(!n||!n.length)return uf;let o=!1;const a=n.reduce(((e,{inline:t,type:i,value:n})=>(o="LineComment"===i,e+(t?" ":"\n"+r)+((e,t)=>t?`//${e}`:`/*${e}*/`)(n,o))),uf);return i||o?a+"\n"+r:a};let vf=null,Nf=uf;const xf=(e,t,r)=>e?t?e+t.trim()+"\n"+r:e.trimRight()+"\n"+r:t?t.trimRight()+"\n"+r:uf,wf=(e,t,r)=>{const i=yf(t,Vh,r+Nf,!0);return xf(i,e,r)},kf=(e,t)=>{if(!e)return"null";const r=t+Nf;let i=uf,n=uf,o=!0;return(Jh(vf)?vf:Object.keys(e)).forEach((t=>{const a=Of(t,e,r);if(a===pf)return;o||(i+=df),o=!1;const s=xf(n,yf(e,_f(t),r),r);i+=s||"\n"+r,i+=bf(t)+yf(e,`${Qh}:${t}`,r)+lf+yf(e,(e=>`${ef}:${e}`)(t),r)+" "+a+yf(e,hf(t),r),n=yf(e,ff(t),r)})),i+=xf(n,yf(e,rf,r),r),sf+wf(i,e,t)+cf};function Of(e,t,r){let i=t[e];switch(Hh(i)&&Wh(i.toJSON)&&(i=i.toJSON(e)),Wh(vf)&&(i=vf.call(t,e,i)),typeof i){case"string":return bf(i);case"number":return Number.isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":return Jh(i)?((e,t)=>{const r=t+Nf,{length:i}=e;let n=uf,o=uf;for(let a=0;a{const i=(e=>Gh(e)?e:Zh(e)?Kh(" ",e):uf)(r);if(!i)return JSON.stringify(e,t);Wh(t)||Jh(t)||(t=null),vf=t,Nf=i;const n=(e=>{if("object"!=typeof e)return!1;const t=Sf.call(e);return Df.includes(t)})(e)?JSON.stringify(e):Of("",{"":e},uf);return vf=null,Nf=uf,Hh(e)?yf(e,Yh,uf).trimLeft()+n+yf(e,nf,uf).trimRight():n},{CommentArray:jf}=X_,{assign:Ff}=F_;var Bf={parse:Af,stringify:Ef,tokenize:Cf,CommentArray:jf,assign:Ff},Mf={},Tf={},Lf={};function Pf(e){return null==e}function If(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Lf.isNothing=Pf,Lf.isObject=function(e){return"object"==typeof e&&null!==e},Lf.toArray=function(e){return Array.isArray(e)?e:Pf(e)?[]:[e]},Lf.repeat=function(e,t){var r,i="";for(r=0;r0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(n="",o=this.position;ot/2-1){n=" ... ",o-=5;break}return a=this.buffer.slice(i,o),zf.repeat(" ",e)+r+a+n+"\n"+zf.repeat(" ",e+this.position-i+r.length)+"^"},Uf.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r};var $f=Uf,qf=Rf,Xf=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jf=["scalar","sequence","mapping"];var Hf=function(e,t){var r,i;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Xf.indexOf(t))throw new qf('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,i={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){i[String(t)]=e}))})),i),-1===Jf.indexOf(this.kind))throw new qf('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},Wf=Lf,Zf=Rf,Gf=Hf;function Kf(e,t,r){var i=[];return e.include.forEach((function(e){r=Kf(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&i.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===i.indexOf(t)}))}function Yf(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new Zf("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=Kf(this,"implicit",[]),this.compiledExplicit=Kf(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),ag=Lf,sg=Hf,cg=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var lg=/^[-+]?[0-9]+e/;var dg=new Vf({include:[Qf],implicit:[eg,tg,og,new sg("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!cg.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,i,n;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,n=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){n.unshift(parseFloat(e,10))})),t=0,i=1,n.forEach((function(e){t+=e*i,i*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||ag.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ag.isNegativeZero(e))return"-0.0";return r=e.toString(10),lg.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})]}),ug=new Vf({include:[dg]}),pg=Hf,mg=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),_g=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var hg=new pg("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==mg.exec(e)||null!==_g.exec(e))},construct:function(e){var t,r,i,n,o,a,s,c,l=0,d=null;if(null===(t=mg.exec(e))&&(t=_g.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],i=+t[2]-1,n=+t[3],!t[4])return new Date(Date.UTC(r,i,n));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(r,i,n,o,a,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var fg,gg=new Hf("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var bg=require;fg=bg("buffer").Buffer}catch(cv){}var yg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var vg=new Hf("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,i=0,n=e.length,o=yg;for(r=0;r64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),n=i.length,o=yg,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0===(r=n%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===r?(s.push(a>>10&255),s.push(a>>2&255)):12===r&&s.push(a>>4&255),fg?fg.from?fg.from(s):new fg(s):s},predicate:function(e){return fg&&fg.isBuffer(e)},represent:function(e){var t,r,i="",n=0,o=e.length,a=yg;for(t=0;t>18&63],i+=a[n>>12&63],i+=a[n>>6&63],i+=a[63&n]),n=(n<<8)+e[t];return 0===(r=o%3)?(i+=a[n>>18&63],i+=a[n>>12&63],i+=a[n>>6&63],i+=a[63&n]):2===r?(i+=a[n>>10&63],i+=a[n>>4&63],i+=a[n<<2&63],i+=a[64]):1===r&&(i+=a[n>>2&63],i+=a[n<<4&63],i+=a[64],i+=a[64]),i}}),Ng=Hf,xg=Object.prototype.hasOwnProperty,wg=Object.prototype.toString;var kg=new Ng("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,i,n,o,a=[],s=e;for(t=0,r=s.length;t3)return!1;if("/"!==t[t.length-i.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),i="";return"/"===t[0]&&(r&&(i=r[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var Mg=require;Fg=Mg("esprima")}catch(lv){"undefined"!=typeof window&&(Fg=window.esprima)}var Tg=new Hf("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=Fg.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(i){return!1}},construct:function(e){var t,r="("+e+")",i=Fg.parse(r,{range:!0}),n=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){n.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(n,r.slice(t[0]+1,t[1]-1)):new Function(n,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),Lg=Vf,Pg=Lg.DEFAULT=new Lg({include:[Eg],explicit:[jg,Bg,Tg]}),Ig=Lf,Rg=Rf,zg=$f,Ug=Eg,$g=Pg,qg=Object.prototype.hasOwnProperty,Xg=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Jg=/[\x85\u2028\u2029]/,Hg=/[,\[\]\{\}]/,Wg=/^(?:!|!!|![a-z\-]+!)$/i,Zg=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Gg(e){return Object.prototype.toString.call(e)}function Kg(e){return 10===e||13===e}function Yg(e){return 9===e||32===e}function Vg(e){return 9===e||32===e||10===e||13===e}function Qg(e){return 44===e||91===e||93===e||123===e||125===e}function eb(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function tb(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function rb(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var ib=new Array(256),nb=new Array(256),ob=0;ob<256;ob++)ib[ob]=tb(ob)?1:0,nb[ob]=tb(ob);function ab(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||$g,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function sb(e,t){return new Rg(t,new zg(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function cb(e,t){throw sb(e,t)}function lb(e,t){e.onWarning&&e.onWarning.call(null,sb(e,t))}var db={YAML:function(e,t,r){var i,n,o;null!==e.version&&cb(e,"duplication of %YAML directive"),1!==r.length&&cb(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&cb(e,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),o=parseInt(i[2],10),1!==n&&cb(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&lb(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var i,n;2!==r.length&&cb(e,"TAG directive accepts exactly two arguments"),i=r[0],n=r[1],Wg.test(i)||cb(e,"ill-formed tag handle (first argument) of the TAG directive"),qg.call(e.tagMap,i)&&cb(e,'there is a previously declared suffix for "'+i+'" tag handle'),Zg.test(n)||cb(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=n}};function ub(e,t,r,i){var n,o,a,s;if(t1&&(e.result+=Ig.repeat("\n",t-1))}function bb(e,t){var r,i,n=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&45===i&&Vg(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,hb(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(r=e.line,Nb(e,t,3,!1,!0),a.push(e.result),hb(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==i)cb(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(Nb(e,t,4,!0,n)&&(h?m=e.result:_=e.result),h||(mb(e,d,u,p,m,_,o,a),p=m=_=null),hb(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)cb(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===n?cb(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?cb(e,"repeat of an indentation width identifier"):(d=t+n-1,l=!0)}if(Yg(o)){do{o=e.input.charCodeAt(++e.position)}while(Yg(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!Kg(o)&&0!==o)}for(;0!==o;){for(_b(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentd&&(d=e.lineIndent),Kg(o))u++;else{if(e.lineIndent0){for(n=a,o=0;n>0;n--)(a=eb(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:cb(e,"expected hexadecimal character");e.result+=rb(o),e.position++}else cb(e,"unknown escape sequence");r=i=e.position}else Kg(s)?(ub(e,r,i,!0),gb(e,hb(e,!1,t)),r=i=e.position):e.position===e.lineStart&&fb(e)?cb(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}cb(e,"unexpected end of the stream within a double quoted scalar")}(e,u)?h=!0:!function(e){var t,r,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!Vg(i)&&!Qg(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&cb(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),qg.call(e.anchorMap,r)||cb(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],hb(e,!0,-1),!0}(e)?function(e,t,r){var i,n,o,a,s,c,l,d,u=e.kind,p=e.result;if(Vg(d=e.input.charCodeAt(e.position))||Qg(d)||35===d||38===d||42===d||33===d||124===d||62===d||39===d||34===d||37===d||64===d||96===d)return!1;if((63===d||45===d)&&(Vg(i=e.input.charCodeAt(e.position+1))||r&&Qg(i)))return!1;for(e.kind="scalar",e.result="",n=o=e.position,a=!1;0!==d;){if(58===d){if(Vg(i=e.input.charCodeAt(e.position+1))||r&&Qg(i))break}else if(35===d){if(Vg(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&fb(e)||r&&Qg(d))break;if(Kg(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,hb(e,!1,-1),e.lineIndent>=t){a=!0,d=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(ub(e,n,o,!1),gb(e,e.line-s),n=o=e.position,a=!1),Yg(d)||(o=e.position+1),d=e.input.charCodeAt(++e.position)}return ub(e,n,o,!1),!!e.result||(e.kind=u,e.result=p,!1)}(e,u,1===r)&&(h=!0,null===e.tag&&(e.tag="?")):(h=!0,null===e.tag&&null===e.anchor||cb(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(h=s&&bb(e,p))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&cb(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+d.kind+'", not "'+e.kind+'"'),d.resolve(e.result)?(e.result=d.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):cb(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):cb(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||h}function xb(e){var t,r,i,n,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(n=e.input.charCodeAt(e.position))&&(hb(e,!0,-1),n=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==n));){for(a=!0,n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!Vg(n);)n=e.input.charCodeAt(++e.position);for(i=[],(r=e.input.slice(t,e.position)).length<1&&cb(e,"directive name must not be less than one character in length");0!==n;){for(;Yg(n);)n=e.input.charCodeAt(++e.position);if(35===n){do{n=e.input.charCodeAt(++e.position)}while(0!==n&&!Kg(n));break}if(Kg(n))break;for(t=e.position;0!==n&&!Vg(n);)n=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==n&&_b(e),qg.call(db,r)?db[r](e,r,i):lb(e,'unknown document directive "'+r+'"')}hb(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,hb(e,!0,-1)):a&&cb(e,"directives end mark is expected"),Nb(e,e.lineIndent-1,4,!1,!0),hb(e,!0,-1),e.checkLineBreaks&&Jg.test(e.input.slice(o,e.position))&&lb(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&fb(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,hb(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,m=m&&Ub(a,s)}else{for(o=0;oi&&" "!==e[p+1],p=o);else if(!zb(a))return 5;s=o>0?e.charCodeAt(o-1):null,m=m&&Ub(a,s)}d=d||u&&o-p-1>i&&" "!==e[p+1]}return l||d?r>9&&$b(e)?5:d?4:3:m&&!n(e)?1:2}function Xb(e,t,r,i){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==Mb.indexOf(t))return"'"+t+"'";var n=e.indent*Math.max(1,r),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-n),a=i||e.flowLevel>-1&&r>=e.flowLevel;switch(qb(t,a,e.indent,o,(function(t){return function(e,t){var r,i;for(r=0,i=e.implicitTypes.length;r"+Jb(t,e.indent)+Hb(Pb(function(e,t){var r,i,n=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,n.lastIndex=s,Wb(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;i=n.exec(e);){var c=i[1],l=i[2];r=" "===l[0],o+=c+(a||r||""===l?"":"\n")+Wb(l,t),a=r}return o}(t,o),n));case 5:return'"'+function(e){for(var t,r,i,n="",o=0;o=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(n+=Tb(1024*(t-55296)+r-56320+65536),o++):n+=!(i=Bb[t])&&zb(t)?e[o]:i||Tb(t);return n}(t)+'"';default:throw new Ab("impossible error: invalid scalar style")}}()}function Jb(e,t){var r=$b(e)?String(t):"",i="\n"===e[e.length-1];return r+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function Hb(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Wb(e,t){if(""===e||" "===e[0])return e;for(var r,i,n=/ [^ ]/g,o=0,a=0,s=0,c="";r=n.exec(e);)(s=r.index)-o>t&&(i=a>o?a:s,c+="\n"+e.slice(o,i),o=i+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function Zb(e,t,r){var i,n,o,a,s,c;for(o=0,a=(n=r?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function Gb(e,t,r,i,n,o){e.tag=null,e.dump=r,Zb(e,r,!1)||Zb(e,r,!0);var a=jb.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(n=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)i&&0!==Object.keys(e.dump).length?(!function(e,t,r,i){var n,o,a,s,c,l,d="",u=e.tag,p=Object.keys(r);if(!0===e.sortKeys)p.sort();else if("function"==typeof e.sortKeys)p.sort(e.sortKeys);else if(e.sortKeys)throw new Ab("sortKeys must be a boolean or a function");for(n=0,o=p.length;n1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=Ib(e,t)),Gb(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",d+=l+=e.dump));e.tag=u,e.dump=d||"{}"}(e,t,e.dump,n),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,r){var i,n,o,a,s,c="",l=e.tag,d=Object.keys(r);for(i=0,n=d.length;i1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Gb(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var d=e.noArrayIndent&&t>0?t-1:t;i&&0!==e.dump.length?(!function(e,t,r,i){var n,o,a="",s=e.tag;for(n=0,o=r.length;n "+e.dump)}return!0}function Kb(e,t){var r,i,n=[],o=[];for(Yb(e,n,o),r=0,i=o.length;r3;)r.pop()();if(r[1]=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,r.ctx.currentTime);for(var i=0;i=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,d()),e},codecs:function(e){return(this||r)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||r;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||r,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(d){return e}if(!t||"function"!=typeof t.canPlayType)return e;var i=t.canPlayType("audio/mpeg;").replace(/^no$/,""),n=e._navigator?e._navigator.userAgent:"",o=n.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==n.indexOf("Safari")&&-1===n.indexOf("Chrome"),c=n.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!i&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!i,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||r;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(r){for(;e._html5AudioPool.length0?s._seek:i._sprite[e][0]/1e3),d=Math.max(0,(i._sprite[e][0]+i._sprite[e][1])/1e3-l),u=1e3*d/Math.abs(s._rate),p=i._sprite[e][0]/1e3,m=(i._sprite[e][0]+i._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var _=function(){s._paused=!1,s._seek=l,s._start=p,s._stop=m,s._loop=!(!s._loop&&!i._sprite[e][2])};if(!(l>=m)){var h=s._node;if(i._webAudio){var f=function(){i._playLock=!1,_(),i._refreshBuffer(s);var e=s._muted||i._muted?0:s._volume;h.gain.setValueAtTime(e,r.ctx.currentTime),s._playStart=r.ctx.currentTime,void 0===h.bufferSource.start?s._loop?h.bufferSource.noteGrainOn(0,l,86400):h.bufferSource.noteGrainOn(0,l,d):s._loop?h.bufferSource.start(0,l,86400):h.bufferSource.start(0,l,d),u!==1/0&&(i._endTimers[s._id]=setTimeout(i._ended.bind(i,s),u)),t||setTimeout((function(){i._emit("play",s._id),i._loadQueue()}),0)};"running"===r.state&&"interrupted"!==r.ctx.state?f():(i._playLock=!0,i.once("resume",f),i._clearTimer(s._id))}else{var g=function(){h.currentTime=l,h.muted=s._muted||i._muted||r._muted||h.muted,h.volume=s._volume*r.volume(),h.playbackRate=s._rate;try{var n=h.play();if(n&&"undefined"!=typeof Promise&&(n instanceof Promise||"function"==typeof n.then)?(i._playLock=!0,_(),n.then((function(){i._playLock=!1,h._unlocked=!0,t?i._loadQueue():i._emit("play",s._id)})).catch((function(){i._playLock=!1,i._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(i._playLock=!1,_(),i._emit("play",s._id)),h.playbackRate=s._rate,h.paused)return void i._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?i._endTimers[s._id]=setTimeout(i._ended.bind(i,s),u):(i._endTimers[s._id]=function(){i._ended(s),h.removeEventListener("ended",i._endTimers[s._id],!1)},h.addEventListener("ended",i._endTimers[s._id],!1))}catch(o){i._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===h.src&&(h.src=i._src,h.load());var b=window&&window.ejecta||!h.readyState&&r._navigator.isCocoonJS;if(h.readyState>=3||b)g();else{i._playLock=!0,i._state="loading";var y=function(){i._state="loaded",g(),h.removeEventListener(r._canPlayEvent,y,!1)};h.addEventListener(r._canPlayEvent,y,!1),i._clearTimer(s._id)}}return s._id}i._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var r=t._getSoundIds(e),i=0;i=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(i=t?n._soundById(t):n._sounds[0])?i._volume:0;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"volume",action:function(){n.volume.apply(n,o)}}),n;void 0===t&&(n._volume=e),t=n._getSoundIds(t);for(var c=0;c0?i/l:i),u=Date.now();e._fadeTo=r,e._interval=setInterval((function(){var n=(Date.now()-u)/i;u=Date.now(),s+=c*n,s=Math.round(100*s)/100,s=c<0?Math.max(r,s):Math.min(r,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(rt&&s>=r)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(r,e._id),a._emit("fade",e._id))}),d)},_stopFade:function(e){var t=this,i=t._soundById(e);return i&&i._interval&&(t._webAudio&&i._node.gain.cancelScheduledValues(r.ctx.currentTime),clearInterval(i._interval),i._interval=null,t.volume(i._fadeTo,e),i._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,r,i=this,n=arguments;if(0===n.length)return i._loop;if(1===n.length){if("boolean"!=typeof n[0])return!!(r=i._soundById(parseInt(n[0],10)))&&r._loop;e=n[0],i._loop=e}else 2===n.length&&(e=n[0],t=parseInt(n[1],10));for(var o=i._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(i=n._soundById(t))?i._rate:n._rate;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"rate",action:function(){n.rate.apply(n,o)}}),n;void 0===t&&(n._rate=e),t=n._getSoundIds(t);for(var c=0;c=0?t=parseInt(n[0],10):i._sounds.length&&(t=i._sounds[0]._id,e=parseFloat(n[0]))}else 2===n.length&&(e=parseFloat(n[0]),t=parseInt(n[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==i._state||i._playLock))return i._queue.push({event:"seek",action:function(){i.seek.apply(i,n)}}),i;var s=i._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(i._webAudio){var c=i.playing(t)?r.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var d=i.playing(t);d&&i.pause(t,!0),s._seek=e,s._ended=!1,i._clearTimer(t),i._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var u=function(){d&&i.play(t,!0),i._emit("seek",t)};if(d&&!i._webAudio){var p=function(){i._playLock?setTimeout(p,0):u()};setTimeout(p,0)}else u()}return i},playing:function(e){var t=this;if("number"==typeof e){var r=t._soundById(e);return!!r&&!r._paused}for(var i=0;i=0&&r._howls.splice(n,1);var a=!0;for(i=0;i=0){a=!1;break}return o&&a&&delete o[e._src],r.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,r,i){var n=this["_on"+e];return"function"==typeof t&&n.push(i?{id:r,fn:t,once:i}:{id:r,fn:t}),this},off:function(e,t,r){var i=this,n=i["_on"+e],o=0;if("number"==typeof t&&(r=t,t=null),t||r)for(o=0;o=0;o--)n[o].id&&n[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,r)}.bind(i,n[o].fn),0),n[o].once&&i.off(e,n[o].fn,n[o].id));return i._loadQueue(e),i},_loadQueue:function(e){var t=this;if(t._queue.length>0){var r=t._queue[0];r.event===e&&(t._queue.shift(),t._loadQueue()),e||r.action()}return t},_ended:function(e){var t=this,i=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;i--){if(r<=t)return;e._sounds[i]._ended&&(e._webAudio&&e._sounds[i]._node&&e._sounds[i]._node.disconnect(0),e._sounds.splice(i,1),r--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],r=0;r=0;if(r._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=r._scratchBuffer}catch(i){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(r._navigator&&r._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(e){this._parent=e,this.init()};n.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,i=r._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===r.ctx.createGain?r.ctx.createGainNode():r.ctx.createGain(),e._node.gain.setValueAtTime(i,r.ctx.currentTime),e._node.paused=!0,e._node.connect(r.masterGain)):r.noAudio||(e._node=r._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(r._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=i*r.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(r._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var r=atob(t.split(",")[1]),i=new Uint8Array(r.length),n=0;n0?(o[t._src]=e,l(t,e)):i()};"undefined"!=typeof Promise&&1===r.ctx.decodeAudioData.length?r.ctx.decodeAudioData(e).then(n).catch(i):r.ctx.decodeAudioData(e,n,i)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},d=function(){if(r.usingWebAudio){try{"undefined"!=typeof AudioContext?r.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?r.ctx=new webkitAudioContext:r.usingWebAudio=!1}catch(o){r.usingWebAudio=!1}r.ctx||(r.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(r._navigator&&r._navigator.platform),t=r._navigator&&r._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),i=t?parseInt(t[1],10):null;if(e&&i&&i<9){var n=/safari/.test(r._navigator&&r._navigator.userAgent.toLowerCase());r._navigator&&!n&&(r.usingWebAudio=!1)}r.usingWebAudio&&(r.masterGain=void 0===r.ctx.createGain?r.ctx.createGainNode():r.ctx.createGain(),r.masterGain.gain.setValueAtTime(r._muted?0:r._volume,r.ctx.currentTime),r.masterGain.connect(r.ctx.destination)),r._setup()}};e.Howler=r,e.Howl=i,void 0!==Te?(Te.HowlerGlobal=t,Te.Howler=r,Te.Howl=i,Te.Sound=n):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=r,window.Howl=i,window.Sound=n)}(), +/*! + * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. + * + * howler.js v2.2.3 + * howlerjs.com + * + * (c) 2013-2020, James Simpson of GoldFire Studios + * goldfirestudios.com + * + * MIT License + */ +function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var r=t._howls.length-1;r>=0;r--)t._howls[r].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,r){var i=this;return i.ctx&&i.ctx.listener?(t="number"!=typeof t?i._pos[1]:t,r="number"!=typeof r?i._pos[2]:r,"number"!=typeof e?i._pos:(i._pos=[e,t,r],void 0!==i.ctx.listener.positionX?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]),i)):i},HowlerGlobal.prototype.orientation=function(e,t,r,i,n,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,r="number"!=typeof r?s[2]:r,i="number"!=typeof i?s[3]:i,n="number"!=typeof n?s[4]:n,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,r,i,n,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,r,i,n,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var r=this;return r._orientation=t.orientation||[1,0,0],r._stereo=t.stereo||null,r._pos=t.pos||null,r._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},r._onstereo=t.onstereo?[{fn:t.onstereo}]:[],r._onpos=t.onpos?[{fn:t.onpos}]:[],r._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,r){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"stereo",action:function(){i.stereo(e,r)}}),i;var n=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===r){if("number"!=typeof e)return i._stereo;i._stereo=e,i._pos=[e,0,0]}for(var o=i._getSoundIds(r),a=0;a"']/,Dy=/[&<>"']/g,Ay=/[<>"']|&(?!#?\w+;)/,Cy=/[<>"']|&(?!#?\w+;)/g,Ey={"&":"&","<":"<",">":">",'"':""","'":"'"},jy=e=>Ey[e];function Fy(e,t){if(t){if(Sy.test(e))return e.replace(Dy,jy)}else if(Ay.test(e))return e.replace(Cy,jy);return e}const By=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function My(e){return e.replace(By,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const Ty=/(^|[^\[])\^/g;function Ly(e,t){e=e.source||e,t=t||"";const r={replace:(t,i)=>(i=(i=i.source||i).replace(Ty,"$1"),e=e.replace(t,i),r),getRegex:()=>new RegExp(e,t)};return r}const Py=/[^\w:]/g,Iy=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ry(e,t,r){if(e){let e;try{e=decodeURIComponent(My(r)).replace(Py,"").toLowerCase()}catch(i){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!Iy.test(r)&&(r=function(e,t){zy[" "+e]||(Uy.test(e)?zy[" "+e]=e+"/":zy[" "+e]=Wy(e,"/",!0));const r=-1===(e=zy[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace($y,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(qy,"$1")+t:e+t}(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(i){return null}return r}const zy={},Uy=/^[^:]+:\/*[^/]*$/,$y=/^([^:]+:)[\s\S]*$/,qy=/^([^:]+:\/*[^/]*)[\s\S]*$/;const Xy={exec:function(){}};function Jy(e){let t,r,i=1;for(;i{let i=!1,n=t;for(;--n>=0&&"\\"===r[n];)i=!i;return i?"|":" |"})).split(/ \|/);let i=0;if(r[0].trim()||r.shift(),r[r.length-1].trim()||r.pop(),r.length>t)r.splice(t);else for(;r.length1;)1&t&&(r+=e),t>>=1,e+=e;return r+e}function Ky(e,t,r,i){const n=t.href,o=t.title?Fy(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){i.state.inLink=!0;const e={type:"link",raw:r,href:n,title:o,text:a,tokens:i.inlineTokens(a,[])};return i.state.inLink=!1,e}return{type:"image",raw:r,href:n,title:o,text:Fy(a)}}class Yy{constructor(e){this.options=e||Oy}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Wy(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],r=function(e,t){const r=e.match(/^(\s+)(?:```)/);if(null===r)return t;const i=r[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[r]=t;return r.length>=i.length?e.slice(i.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:r}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=Wy(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const r={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r,i,n,o,a,s,c,l,d,u,p,m,_=t[1].trim();const h=_.length>1,f={type:"list",raw:"",ordered:h,start:h?+_.slice(0,-1):"",loose:!1,items:[]};_=h?`\\d{1,9}\\${_.slice(-1)}`:`\\${_}`,this.options.pedantic&&(_=h?_:"[*+-]");const g=new RegExp(`^( {0,3}${_})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(m=!1,t=g.exec(e))&&!this.rules.block.hr.test(e);){if(r=t[0],e=e.substring(r.length),l=t[2].split("\n",1)[0],d=e.split("\n",1)[0],this.options.pedantic?(o=2,p=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,p=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(d)&&(r+=d+"\n",e=e.substring(d.length+1),m=!0),!m){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(u=e.split("\n",1)[0],l=u,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())p+="\n"+l.slice(o);else{if(s)break;p+="\n"+l}s||l.trim()||(s=!0),r+=u+"\n",e=e.substring(u.length+1)}}f.loose||(c?f.loose=!0:/\n *\n *$/.test(r)&&(c=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(p),i&&(n="[ ] "!==i[0],p=p.replace(/^\[[ xX]\] +/,""))),f.items.push({type:"list_item",raw:r,task:!!i,checked:n,loose:!1,text:p}),f.raw+=r}f.items[f.items.length-1].raw=r.trimRight(),f.items[f.items.length-1].text=p.trimRight(),f.raw=f.raw.trimRight();const b=f.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let r=0;for(const i of t)if("\n"===i&&(r+=1),r>1)return!0;return!1}));!f.loose&&e.length&&t&&(f.loose=!0,f.items[a].loose=!0)}return f}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):Fy(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:Hy(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let r,i,n,o,a=e.align.length;for(r=0;r({text:e})));for(a=e.header.length,i=0;i/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Fy(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=Wy(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const r=e.length;let i=0,n=0;for(;n-1){const r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);e&&(r=e[1],i=e[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),/^$/.test(e)?r.slice(1):r.slice(1,-1)),Ky(t,{href:r?r.replace(this.rules.inline._escapes,"$1"):r,title:i?i.replace(this.rules.inline._escapes,"$1"):i},t[0],this.lexer)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=(r[2]||r[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return Ky(r,e,r[0],this.lexer)}}emStrong(e,t,r=""){let i=this.rules.inline.emStrong.lDelim.exec(e);if(!i)return;if(i[3]&&r.match(/[\p{L}\p{N}]/u))return;const n=i[1]||i[2]||"";if(!n||n&&(""===r||this.rules.inline.punctuation.exec(r))){const r=i[0].length-1;let n,o,a=r,s=0;const c="*"===i[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+r);null!=(i=c.exec(t));){if(n=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!n)continue;if(o=n.length,i[3]||i[4]){a+=o;continue}if((i[5]||i[6])&&r%3&&!((r+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(r,o)%2){const t=e.slice(1,r+i.index+o);return{type:"em",raw:e.slice(0,r+i.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,r+i.index+o-1);return{type:"strong",raw:e.slice(0,r+i.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const r=/[^ ]/.test(e),i=/^ /.test(e)&&/ $/.test(e);return r&&i&&(e=e.substring(1,e.length-1)),e=Fy(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const r=this.rules.inline.autolink.exec(e);if(r){let e,i;return"@"===r[2]?(e=Fy(this.options.mangle?t(r[1]):r[1]),i="mailto:"+e):(e=Fy(r[1]),i=e),{type:"link",raw:r[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let r;if(r=this.rules.inline.url.exec(e)){let e,i;if("@"===r[2])e=Fy(this.options.mangle?t(r[0]):r[0]),i="mailto:"+e;else{let t;do{t=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0]}while(t!==r[0]);e=Fy(r[0]),i="www."===r[1]?"http://"+e:e}return{type:"link",raw:r[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const r=this.rules.inline.text.exec(e);if(r){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Fy(r[0]):r[0]:Fy(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:e}}}}const Vy={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Xy,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Vy.def=Ly(Vy.def).replace("label",Vy._label).replace("title",Vy._title).getRegex(),Vy.bullet=/(?:[*+-]|\d{1,9}[.)])/,Vy.listItemStart=Ly(/^( *)(bull) */).replace("bull",Vy.bullet).getRegex(),Vy.list=Ly(Vy.list).replace(/bull/g,Vy.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Vy.def.source+")").getRegex(),Vy._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Vy._comment=/|$)/,Vy.html=Ly(Vy.html,"i").replace("comment",Vy._comment).replace("tag",Vy._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Vy.paragraph=Ly(Vy._paragraph).replace("hr",Vy.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy._tag).getRegex(),Vy.blockquote=Ly(Vy.blockquote).replace("paragraph",Vy.paragraph).getRegex(),Vy.normal=Jy({},Vy),Vy.gfm=Jy({},Vy.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Vy.gfm.table=Ly(Vy.gfm.table).replace("hr",Vy.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy._tag).getRegex(),Vy.gfm.paragraph=Ly(Vy._paragraph).replace("hr",Vy.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",Vy.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Vy._tag).getRegex(),Vy.pedantic=Jy({},Vy.normal,{html:Ly("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Vy._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Xy,paragraph:Ly(Vy.normal._paragraph).replace("hr",Vy.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Vy.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const Qy={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Xy,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Xy,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),i+="&#"+r+";";return i}Qy._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Qy.punctuation=Ly(Qy.punctuation).replace(/punctuation/g,Qy._punctuation).getRegex(),Qy.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Qy.escapedEmSt=/\\\*|\\_/g,Qy._comment=Ly(Vy._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Qy.emStrong.lDelim=Ly(Qy.emStrong.lDelim).replace(/punct/g,Qy._punctuation).getRegex(),Qy.emStrong.rDelimAst=Ly(Qy.emStrong.rDelimAst,"g").replace(/punct/g,Qy._punctuation).getRegex(),Qy.emStrong.rDelimUnd=Ly(Qy.emStrong.rDelimUnd,"g").replace(/punct/g,Qy._punctuation).getRegex(),Qy._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Qy._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Qy._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Qy.autolink=Ly(Qy.autolink).replace("scheme",Qy._scheme).replace("email",Qy._email).getRegex(),Qy._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Qy.tag=Ly(Qy.tag).replace("comment",Qy._comment).replace("attribute",Qy._attribute).getRegex(),Qy._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Qy._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Qy._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Qy.link=Ly(Qy.link).replace("label",Qy._label).replace("href",Qy._href).replace("title",Qy._title).getRegex(),Qy.reflink=Ly(Qy.reflink).replace("label",Qy._label).replace("ref",Vy._label).getRegex(),Qy.nolink=Ly(Qy.nolink).replace("ref",Vy._label).getRegex(),Qy.reflinkSearch=Ly(Qy.reflinkSearch,"g").replace("reflink",Qy.reflink).replace("nolink",Qy.nolink).getRegex(),Qy.normal=Jy({},Qy),Qy.pedantic=Jy({},Qy.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Ly(/^!?\[(label)\]\((.*?)\)/).replace("label",Qy._label).getRegex(),reflink:Ly(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Qy._label).getRegex()}),Qy.gfm=Jy({},Qy.normal,{escape:Ly(Qy.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(r=i.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))))if(r=this.tokenizer.space(e))e=e.substring(r.raw.length),1===r.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(r);else if(r=this.tokenizer.code(e))e=e.substring(r.raw.length),i=t[t.length-1],!i||"paragraph"!==i.type&&"text"!==i.type?t.push(r):(i.raw+="\n"+r.raw,i.text+="\n"+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text);else if(r=this.tokenizer.fences(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.heading(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.hr(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.blockquote(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.list(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.html(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.def(e))e=e.substring(r.raw.length),i=t[t.length-1],!i||"paragraph"!==i.type&&"text"!==i.type?this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title}):(i.raw+="\n"+r.raw,i.text+="\n"+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text);else if(r=this.tokenizer.table(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.lheading(e))e=e.substring(r.raw.length),t.push(r);else{if(n=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const r=e.slice(1);let i;this.options.extensions.startBlock.forEach((function(e){i=e.call({lexer:this},r),"number"==typeof i&&i>=0&&(t=Math.min(t,i))})),t<1/0&&t>=0&&(n=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(n)))i=t[t.length-1],o&&"paragraph"===i.type?(i.raw+="\n"+r.raw,i.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r),o=n.length!==e.length,e=e.substring(r.raw.length);else if(r=this.tokenizer.text(e))e=e.substring(r.raw.length),i=t[t.length-1],i&&"text"===i.type?(i.raw+="\n"+r.raw,i.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):t.push(r);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let r,i,n,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+Gy("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+Gy("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((i=>!!(r=i.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))))if(r=this.tokenizer.escape(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.tag(e))e=e.substring(r.raw.length),i=t[t.length-1],i&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):t.push(r);else if(r=this.tokenizer.link(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(r.raw.length),i=t[t.length-1],i&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):t.push(r);else if(r=this.tokenizer.emStrong(e,c,s))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.codespan(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.br(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.del(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.autolink(e,tv))e=e.substring(r.raw.length),t.push(r);else if(this.state.inLink||!(r=this.tokenizer.url(e,tv))){if(n=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const r=e.slice(1);let i;this.options.extensions.startInline.forEach((function(e){i=e.call({lexer:this},r),"number"==typeof i&&i>=0&&(t=Math.min(t,i))})),t<1/0&&t>=0&&(n=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(n,ev))e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(s=r.raw.slice(-1)),a=!0,i=t[t.length-1],i&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):t.push(r);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(r.raw.length),t.push(r);return t}}class iv{constructor(e){this.options=e||Oy}code(e,t,r){const i=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,i);null!=t&&t!==e&&(r=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",i?'
'+(r?e:Fy(e,!0))+"
\n":"
"+(r?e:Fy(e,!0))+"
\n"}blockquote(e){return"
\n"+e+"
\n"}html(e){return e}heading(e,t,r,i){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
\n":"
\n"}list(e,t,r){const i=t?"ol":"ul";return"<"+i+(t&&1!==r?' start="'+r+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,r){if(null===(e=Ry(this.options.sanitize,this.options.baseUrl,e)))return r;let i='",i}image(e,t,r){if(null===(e=Ry(this.options.sanitize,this.options.baseUrl,e)))return r;let i=''+r+'":">",i}text(e){return e}}class nv{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,r){return""+r}image(e,t,r){return""+r}br(){return""}}class ov{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let r=e,i=0;if(this.seen.hasOwnProperty(r)){i=this.seen[e];do{i++,r=e+"-"+i}while(this.seen.hasOwnProperty(r))}return t||(this.seen[e]=i,this.seen[r]=0),r}slug(e,t={}){const r=this.serialize(e);return this.getNextSafeSlug(r,t.dryrun)}}class av{constructor(e){this.options=e||Oy,this.options.renderer=this.options.renderer||new iv,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new nv,this.slugger=new ov}static parse(e,t){return new av(t).parse(e)}static parseInline(e,t){return new av(t).parseInline(e)}parse(e,t=!0){let r,i,n,o,a,s,c,l,d,u,p,m,_,h,f,g,b,y,v,N="";const x=e.length;for(r=0;r0&&"paragraph"===f.tokens[0].type?(f.tokens[0].text=y+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&"text"===f.tokens[0].tokens[0].type&&(f.tokens[0].tokens[0].text=y+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:y}):h+=y),h+=this.parse(f.tokens,_),d+=this.renderer.listitem(h,b,g);N+=this.renderer.list(d,p,m);continue;case"html":N+=this.renderer.html(u.text);continue;case"paragraph":N+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(d=u.tokens?this.parseInline(u.tokens):u.text;r+1{n(e.text,e.lang,(function(t,r){if(t)return a(t);null!=r&&r!==e.text&&(e.text=r,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const r=rv.lex(e,t);return t.walkTokens&&sv.walkTokens(r,t.walkTokens),av.parse(r,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Fy(i.message+"",!0)+"
    ";throw i}}sv.options=sv.setOptions=function(e){var t;return Jy(sv.defaults,e),t=sv.defaults,Oy=t,sv},sv.getDefaults=ky,sv.defaults=Oy,sv.use=function(...e){const t=Jy({},...e),r=sv.defaults.extensions||{renderers:{},childTokens:{}};let i;e.forEach((e=>{if(e.extensions&&(i=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=r.renderers?r.renderers[e.name]:null;r.renderers[e.name]=t?function(...r){let i=e.renderer.apply(this,r);return!1===i&&(i=t.apply(this,r)),i}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");r[e.level]?r[e.level].unshift(e.tokenizer):r[e.level]=[e.tokenizer],e.start&&("block"===e.level?r.startBlock?r.startBlock.push(e.start):r.startBlock=[e.start]:"inline"===e.level&&(r.startInline?r.startInline.push(e.start):r.startInline=[e.start]))}e.childTokens&&(r.childTokens[e.name]=e.childTokens)}))),e.renderer){const r=sv.defaults.renderer||new iv;for(const t in e.renderer){const i=r[t];r[t]=(...n)=>{let o=e.renderer[t].apply(r,n);return!1===o&&(o=i.apply(r,n)),o}}t.renderer=r}if(e.tokenizer){const r=sv.defaults.tokenizer||new Yy;for(const t in e.tokenizer){const i=r[t];r[t]=(...n)=>{let o=e.tokenizer[t].apply(r,n);return!1===o&&(o=i.apply(r,n)),o}}t.tokenizer=r}if(e.walkTokens){const r=sv.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),r&&r.call(this,t)}}i&&(t.extensions=r),sv.setOptions(t)}))},sv.walkTokens=function(e,t){for(const r of e)switch(t.call(sv,r),r.type){case"table":for(const e of r.header)sv.walkTokens(e.tokens,t);for(const e of r.rows)for(const r of e)sv.walkTokens(r.tokens,t);break;case"list":sv.walkTokens(r.items,t);break;default:sv.defaults.extensions&&sv.defaults.extensions.childTokens&&sv.defaults.extensions.childTokens[r.type]?sv.defaults.extensions.childTokens[r.type].forEach((function(e){sv.walkTokens(r[e],t)})):r.tokens&&sv.walkTokens(r.tokens,t)}},sv.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");Zy(t=Jy({},sv.defaults,t||{}));try{const r=rv.lexInline(e,t);return t.walkTokens&&sv.walkTokens(r,t.walkTokens),av.parseInline(r,t)}catch(r){if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Fy(r.message+"",!0)+"
    ";throw r}},sv.Parser=av,sv.parser=av.parse,sv.Renderer=iv,sv.TextRenderer=nv,sv.Lexer=rv,sv.lexer=rv.lex,sv.Tokenizer=Yy,sv.Slugger=ov,sv.parse=sv,av.parse,rv.lex;export{Se as A,oy as B,Ae as C,de as D,Rp as E,De as F,hm as G,mm as H,wy as I,lm as J,sv as K,ym as L,le as M,$ as N,bm as O,Up as R,rm as T,N as a,w as b,Le as c,Oe as d,re as e,dn as f,te as g,na as h,Ys as i,Nr as j,Jl as k,xe as l,Im as m,Rm as n,Um as o,$m as p,q,xt as r,ke as s,Jm as t,Kp as u,wm as v,Hm as w,Bf as x,we as y,ry as z}; +//# sourceMappingURL=vendor.104f0f91.js.map diff --git a/assets/vendor.104f0f91.js.map b/assets/vendor.104f0f91.js.map new file mode 100644 index 00000000..832ce39c --- /dev/null +++ b/assets/vendor.104f0f91.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.104f0f91.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {},\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n })));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function x(t,e,i,s){const n=S(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function S(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function B(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function I(t,e,i,s){const n=B(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function y(t,e){try{return t()}catch(t){return e}}var P,E,A,R,N;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(P||(P={}));class C{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=B(t.value,\"Name\",\"string\"),i=y((()=>B(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:B(i,e,\"string\")})),{});return new C(e,s)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=P.readMap(s.Properties,(t=>{var e;return null!==(e=P.readString(t))&&void 0!==e?e:\"\"}));return new C(n,r)}}C.AIR=new C(\"minecraft:air\");class k{constructor(t){this.minY=t,this.storage=Array(k.SIZE),this.palette=[C.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:C.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}k.WIDTH=16,k.SIZE=k.WIDTH*k.WIDTH*k.WIDTH;class T{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:C.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(C.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new k(this.minSection+t)),this.sections[t]}}!function(t){t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return t[0]<<19},t.maxBlockZ=function(t){return t[1]<<19}}(E||(E={}));class _{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new C(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]C.fromNbt({name:\"\",value:t}))),s=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:B(t,\"state\",\"int\"),nbt:y((()=>B(t,\"nbt\",\"compound\")),void 0)})));return new _(e,i,s)}}function O(t){return t*t}function M(t,e,i){return Math.max(e,Math.min(i,t))}function L(t,e,i){return e+t*(i-e)}function D(t,e,i,s,n,r){return L(e,L(t,i,s),L(t,n,r))}function U(t,e,i,s,n,r,o,a,l,h,u){return L(i,D(t,e,s,n,r,o),D(t,e,a,l,h,u))}function z(t,e,i){return i<0?t:i>1?e:L(i,t,e)}function j(t){return t*t*t*(t*(6*t-15)+10)}function V(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}class J{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new J(this.nextLong())}setSeed(t){this.seed=t^J.MULTIPLIER&J.MODULUS_MASK}advance(){this.seed=this.seed*J.MULTIPLIER+J.INCREMENT&J.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(J.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^Y.SILVER_RATIO_64,i=e+Y.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[Y.mixStafford13(e),Y.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=Y.upgradeSeedTo128bit(t)}fork(){return new Y([this.next(),this.next()])}static getSeed(t,e,i){let s=t*BigInt(3129871)^i*BigInt(116129781)^e;return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}forkAt(t,e,i){const s=Y.getSeed(t,e,i)^this.seed[0];return new Y([s,this.seed[1]])}static LongfromBytes(t,e,i,s,n,r,o,a){return BigInt(t)<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*Y.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Y.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}Y.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),Y.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),Y.FLOAT_MULTIPLIER=1/Math.pow(2,24),Y.DOUBLE_MULTIPLIER=11102230246251565e-32;class W{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*W.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*W.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+W.G2,c=n-h+W.G2,d=a-1+2*W.G2,f=n-1+2*W.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return z(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=P.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=P.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=P.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=P.readNumber(o.y_factor))&&void 0!==r?r:80}}}(A||(A={}));class G{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new H(t,e,i),this.second=new H(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=P.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class ${constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new W(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new W(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=P.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new q(0);for(const e of h){const s=null!==(r=P.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=P.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(N||(N={}));class q{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class K{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=V(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const Q=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],tt=[124/256,189/256,107/256],et=Q(6396257),it=Q(8431445),st=Q(4764952),nt=Q(4159204),rt=Q(8431445),ot=Q(2129968),at=t=>[t/8,1-t/32,64*t],lt={large_fern:()=>tt,tall_grass:()=>tt,grass_block:()=>tt,fern:()=>tt,grass:()=>tt,potted_fern:()=>tt,spruce_leaves:()=>et,birch_leaves:()=>it,oak_leaves:()=>st,jungle_leaves:()=>st,acacia_leaves:()=>st,dark_oak_leaves:()=>st,vine:()=>st,water:()=>nt,bubble_column:()=>nt,cauldron:()=>nt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),M(e*e*.7-.5,0,1),M(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>tt,attached_melon_stem:()=>rt,attached_pumpkin_stem:()=>rt,melon_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>ot};var ht;function ut(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function ct(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=ht.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),ct(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=ut(...f);return ct(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new dt(t,e.variants,e.multipart)}}const ft={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},gt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},pt=1.41421356237,mt={x:[1,pt,pt],y:[pt,1,pt],z:[pt,pt,1]};class vt{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:ut(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,F;const x=r.from[0],S=r.from[1],B=r.from[2],I=r.to[0],y=r.to[1],P=r.to[2],E=[],A=[],R=[],N=[],C=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,F,x,S]=a.getTextureUV(this.getTexture(i.texture)),B=(x-w)/16,I=(S-F)/16,y=B/16,P=I/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*B+y,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*I+P,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*B-y,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*I-P;const C=ft[null!==(p=i.rotation)&&void 0!==p?p:0];A.push(w+s[C[0]],F+s[C[1]],w+s[C[2]],F+s[C[3]],w+s[C[4]],F+s[C[5]],w+s[C[6]],F+s[C[7]]);const k=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=lt[t.slice(10)])||void 0===v?void 0:v.call(lt,e))&&void 0!==b?b:[1,1,1];R.push(...k,...k,...k,...k),E.push(...n),N.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||C(r.faces.up,[x,16-P,I,16-B],[x,y,P,I,y,P,I,y,B,x,y,B]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||C(r.faces.down,[16-P,16-I,16-B,16-x],[x,S,B,I,S,B,I,S,P,x,S,P]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||C(r.faces.south,[x,16-y,I,16-S],[x,S,P,I,S,P,I,y,P,x,y,P]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||C(r.faces.north,[16-I,16-y,16-x,16-S],[I,S,B,x,S,B,x,y,B,I,y,B]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||C(r.faces.east,[16-P,16-y,16-B,16-S],[I,S,P,I,S,B,I,y,B,I,y,P]),!(null===(F=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===F?void 0:F.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||C(r.faces.west,[B,16-y,P,16-S],[x,S,B,x,S,P,x,y,P,x,y,B]);const k=s.create();if(s.identity(k),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(k,k,t),s.rotate(k,k,n.toRadian(r.rotation.angle),gt[r.rotation.axis]),r.rotation.rescale&&s.scale(k,k,mt[r.rotation.axis]),i.negate(t,t),s.translate(k,k,t)}const T=new Float32Array(E);return ct(T,k),{position:T,texCoord:A,tintColor:R,index:N}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new vt(t,i,e.textures,e.elements)}}class bt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function wt(t,e,i,s,n){const r=new dt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Ft(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return wt(`minecraft:${t}`,s,e,n,new vt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const xt={\"minecraft:water\":(t,e,i,s)=>Ft(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Ft(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return wt(\"minecraft:chest\",s,t,{},new vt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},St=new Set(Object.keys(xt));class Bt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),ct(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,ut(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,ut(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),St.has(o)&&(l=xt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function It(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class yt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return It(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>It(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new yt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return yt.drawInvalidTexture(e),new yt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Pt,Et,At,Rt,Nt,Ct,kt,Tt,_t;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=P.readArray(t,(t=>P.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=P.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Pt||(Pt={}));class Ot{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Ot(n)}}class Mt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=(null!==(i=P.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=P.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Pt.ParamPoint.fromJson(t.parameters)}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Mt(new Pt.Parameters(n))}}class Lt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new Lt(N.fromJson(i.offset,this.EXTRACTOR),N.fromJson(i.factor,this.EXTRACTOR),N.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+Lt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new K(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new K(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new K(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Lt(n,r,o)}static getErosionFactor(t,e){const i=new K(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new K(this.EROSION).addPoint(-.6,i).addPoint(-.5,new K(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new K(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new K(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new K(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new K(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new K(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(L(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(L(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,L(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new K(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new K(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new K(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new K(Lt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}Lt.GLOBAL_OFFSET=-.50375,Lt.EXTRACTOR=t=>{var e;const i=null!==(e=P.readString(t))&&void 0!==e?e:\"continents\";return Lt.extractor(i)},Lt.CONTINENTS=Lt.extractor(\"continents\"),Lt.EROSION=Lt.extractor(\"erosion\"),Lt.WEIRDNESS=Lt.extractor(\"weirdness\"),Lt.RIDGES=Lt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Et||(Et={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=P.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=P.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=P.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=P.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:A.fromJson(h.sampling),topSlide:Rt.fromJson(h.top_slide),bottomSlide:Rt.fromJson(h.bottom_slide),terrainShaper:Lt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=P.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=P.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=P.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(At||(At={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=P.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=P.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=P.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return z(t.target,e,s)}}(Rt||(Rt={}));class Dt{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Dt.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=Dt.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.baseNoise=s.makeBaseNoiseFiller(this,o)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}createNoiseInterpolator(t){const e=new Dt(this,t);return this.interpolators.push(e),e}initializeForFirstCellX(){this.interpolators.forEach((t=>t.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Nt||(Nt={}));class zt{constructor(t,e,i,s=!1){if(this.settings=t,s){const s=new J(e);this.blendedNoise=new Z(s.fork(),t.sampling,At.cellWidth(t),At.cellHeight(t)),s.consume(8),this.temperatureNoise=new G(new J(e),i.temperature),this.humidityNoise=new G(new J(e+BigInt(1)),i.humidity),this.continentalnessNoise=new G(new J(e+BigInt(2)),i.continentalness),this.erosionNoise=new G(new J(e+BigInt(3)),i.erosion),this.weirdnessNoise=new G(new J(e+BigInt(4)),i.weirdness),this.offsetNoise=new G(new J(e+BigInt(5)),i.shift),this.jaggedNoise=new G(s.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const s=Y.create(e).fork();this.blendedNoise=new Z(s.forkWithHashOf(\"minecraft:terrain\"),t.sampling,At.cellWidth(t),At.cellHeight(t)),this.temperatureNoise=new G(s.forkWithHashOf(\"minecraft:temperature\"),i.temperature),this.humidityNoise=new G(s.forkWithHashOf(\"minecraft:vegetation\"),i.humidity),this.continentalnessNoise=new G(s.forkWithHashOf(\"minecraft:continentalness\"),i.continentalness),this.erosionNoise=new G(s.forkWithHashOf(\"minecraft:erosion\"),i.erosion),this.weirdnessNoise=new G(s.forkWithHashOf(\"minecraft:ridge\"),i.weirdness),this.offsetNoise=new G(s.forkWithHashOf(\"minecraft:offset\"),i.shift),this.jaggedNoise=new G(s.forkWithHashOf(\"minecraft:jagged\"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=t.terrainShaper,this.baseNoise=t=>{const e=t.createNoiseInterpolator(((e,i,s)=>this.calculateBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)));return()=>e.sample()}}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Ct.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Pt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=Lt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Nt.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e){const i=this.baseNoise(t);return(t,s,n)=>{let r=i();return r=M(.64*r,-1,1),r=r/2-r*r*r/24,r+=e(t,s,n),r>0?null:C.AIR}}calculateBaseNoise(t,e,i,s){let n=this.blendedNoise.sample(t,e,i);if(s){const r=this.sampleJaggedNoise(s.jaggedness,t,i),o=this.computeDimensionDensity(e,s),a=s.factor*(r+o);n+=a>0?4*a:a}return n=M(n,-64,64),n=this.applySlide(n,e/At.cellHeight(this.settings)),n=M(n,-64,64),n}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}applySlide(t,e){const i=e-At.minCellY(this.settings);return t=Rt.apply(this.settings.topSlide,t,At.cellCountY(this.settings)-i),t=Rt.apply(this.settings.bottomSlide,t,i)}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Ct||(Ct={}));class jt{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new zt(i.noise,t,i.octaves,i.legacyRandomSource),this.materialRule=Et.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)])}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=At.cellWidth(this.settings.noise),r=At.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=E.minBlockX(t.pos),u=E.minBlockZ(t.pos),c=new Ut(o,l,a,this.sampler,h,u,(()=>0),this.settings);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;t{var e,i,s;return{distance:null!==(e=P.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=P.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=P.readInt(t.count))&&void 0!==s?s:0}})),structures:P.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=P.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=P.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=P.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})}))}}}(Tt||(Tt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{temperature:R.fromJson(i.temperature),humidity:R.fromJson(i.humidity),continentalness:R.fromJson(i.continentalness),erosion:R.fromJson(i.erosion),weirdness:R.fromJson(i.weirdness),shift:R.fromJson(i.shift)}}}(_t||(_t={}));export{Z as BlendedNoise,lt as BlockColors,dt as BlockDefinition,vt as BlockModel,a as BlockPos,C as BlockState,T as Chunk,E as ChunkPos,k as ChunkSection,Pt as Climate,q as ConstantProvider,r as Direction,Ot as FixedBiome,Ct as FlatNoiseData,X as ImprovedNoise,P as Json,J as LegacyRandom,Et as MaterialRule,Mt as MultiNoise,u as NbtReader,c as NbtWriter,Ut as NoiseChunk,jt as NoiseChunkGenerator,kt as NoiseGeneratorSettings,Dt as NoiseInterpolator,_t as NoiseOctaves,R as NoiseParameters,zt as NoiseSampler,A as NoiseSamplingSettings,At as NoiseSettings,Rt as NoiseSlideSettings,G as NormalNoise,N as NumberProvider,H as PerlinNoise,$ as PerlinSimplexNoise,W as SimplexNoise,K as Spline,_ as Structure,Bt as StructureRenderer,Tt as StructureSettings,Nt as TerrainInfo,Lt as TerrainShaper,yt as TextureAtlas,Y as XoroshiroRandom,V as binarySearch,M as clamp,z as clampedLerp,I as getListTag,y as getOptional,B as getTag,L as lerp,D as lerp2,U as lerp3,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,j as smoothstep,O as square,h as tagNames,l as tagTypes,w as write,x as writeChunk,b as writeCompressed,F as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n blockquote(quote) {\n return '
    \\n' + quote + '
    \\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","idx","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","marker","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","arrow","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","markers","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","writable","configurable","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","col","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","tmp","self2","$0","$1","$2","codePoint","RegExp","exception2","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","lang","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","Tokenizer2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","numberIsNaN","fromObject","toPrimitive","array2","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","found","remaining","strLen","parsed","blitBuffer","byteArray","asciiToBytes","units","hi","lo","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","console","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","slowToString","toLocaleString","inspect","INSPECT_MAX_BYTES","trim","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","toJSON","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","re","POWERS_OF_TEN","results","log10","al","bl","aStr","bStr","runHi","pivot","pivotIndex","mid","hint","lastOffset","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","cursor2","dest","count1","count2","customCursor","customDest","src","alphabeticalCompare","makeAscendingRun","ts","TimSort","minRun","minRunLength","force","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","define","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","remove","move_comments","ii","remove_comments","begin","deleteCount","item_length","CommentArray","before","items_length","reverse","map2","source_index","real_source_index","mapped","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","tt","started","walk","parse_object","parse_array","negative","cache","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\"","\\","quote","lastIndex","process_comments","host","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","indent","one","two","gap","trimRight","join_content","inside","object_stringify","after_comma","sv","AFTER_COLON","holder","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","indent2","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","include","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","mapping","collectType","compileMap","Schema","DEFAULT","types","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","getTime","toISOString","NodeBuffer","merge","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pair","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","global","multiline","ignoreCase","_function","err2","Function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","lineIndent","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startLine","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","tagName","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","extend","ESCAPE_SEQUENCES","7","8","9","10","11","12","13","27","34","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","character","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","spaces","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","width","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","S","displayName","isReactComponent","__f","isPureReactComponent","__u","__R","__O","delete","revealOrder","F","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","selected","defaultValue","className","$$typeof","performance","now","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","walkTokens","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","stop","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","ua","userAgent","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_emit","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","_seek","timeout","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","once","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","readyState","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","fade","linearRampToValueAtTime","_startFadeInterval","isGroup","diff","steps","stepLen","lastTick","_fadeTo","setInterval","tick","round","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","cache2","on","events","off","isId","task","_drain","cnt","_panner","isIOS","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","ceil","__default","loadBuffer","atob","dataView","XMLHttpRequest","open","responseType","setRequestHeader","response","onerror","safeXhrSend","send","decodeAudioData","arraybuffer","success","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","platform","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","'","getEscapeReplacement","html","unescapeTest","substring","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","link","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","top","spacers","hasMultipleLineBreaks","chars","pre","def","splitCells","align","rows","row","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","edit","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","content","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","cell","itemBody","checkbox","renderers","tablecell","tablerow","listitem","callback","marked","setOptions","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"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ACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aA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b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,cAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCngBD7P,iBAAwB,aAAc,CAAErM,OAAO,wBAC1BmS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNgK,EAAS3M,0BACgB,CAC3BolB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B7xB,KAAM,sBACN8xB,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eA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BACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,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AS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnS,OAAOsC,eAAewW,GAAS,aAAc,CAAE7iB,OAAO,mCACrB,EACjC,MAAM8iB,GAAStT,6BACf,SAAgC8I,EAASO,SAC/BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/Ckf,EAAkBjV,GAAO3N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAMya,GAAOrG,IAAIJ,EAAU,qBAC3BjH,eAAmBvH,EAAIiC,SAAoF,UA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sBAAsBskB,GAAaxd,IAMnC,yBALA,iBACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnS,OAAOsC,eAAewW,GAAS,aAAc,CAAE7iB,OAAO,mCACrB,EA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"} \ No newline at end of file diff --git a/assets/vendor.482c2e48.js b/assets/vendor.482c2e48.js deleted file mode 100644 index 9f1ac544..00000000 --- a/assets/vendor.482c2e48.js +++ /dev/null @@ -1,38 +0,0 @@ -var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n,s=(e,t)=>{for(var r in t||(t={}))i.call(t,r)&&a(e,r,t[r]);if(n)for(var r of n(t))o.call(t,r)&&a(e,r,t[r]);return e},c=(e,n)=>t(e,r(n)),l=e=>"symbol"==typeof e?e:e+"";const u={};var d,p,m,h,f,_={},g=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function y(e,t){for(var r in t)e[r]=t[r];return e}function v(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,r){var n,i,o,a=arguments,s={};for(o in t)"key"==o?n=t[o]:"ref"==o?i=t[o]:s[o]=t[o];if(arguments.length>3)for(r=[r],o=3;o0?N(m.type,m.props,m.key,null,m.__v):m)){if(m.__=r,m.__b=r.__b+1,null===(p=y[u])||p&&m.key==p.key&&m.type===p.type)y[u]=void 0;else for(d=0;dt.rank?-1:e.index-t.index}function Z(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,G(t).map(K).join(""));var t}(e),e.props}function G(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function K(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,V=[],Q=[],ee={};function te(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:ee).pathname||"")+(e.search||"")}function re(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=V.length;t--;)if(V[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ne(e)}function ne(e){for(var t=!1,r=0;r0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){V.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),V.splice(V.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,r){return e.filter(Z).sort(W).map((function(e){var n=H(t,e.props.path,e.props);if(n){if(!1!==r){var i={url:t,matches:n};return q(i,n),delete i.ref,delete i.key,function(e,t,r){var n,i,o,a=arguments,s=y({},e.props);for(o in t)"key"==o?n=t[o]:"ref"==o?i=t[o]:s[o]=t[o];if(arguments.length>3)for(r=[r],o=3;o=r.__.length&&r.__.push({}),r.__[e]}function Ne(e){return he=1,function(e,t,r){var n=xe(de++,2);return n.t=e,n.__c||(n.__=[r?r(t):je(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=pe),n.__}(je,e)}function we(e,t){var r=xe(de++,3);!d.__s&&Me(r.__H,t)&&(r.__=e,r.__H=t,pe.__H.__h.push(r))}function ke(e){return he=5,Oe((function(){return{current:e}}),[])}function Oe(e,t){var r=xe(de++,7);return Me(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Se(e,t){return he=8,Oe((function(){return e}),t)}function Ae(e){var t=pe.context[e.__c],r=xe(de++,9);return r.__c=e,t?(null==r.__&&(r.__=!0,t.sub(pe)),t.props.value):e.__}function De(e){var t=xe(de++,10),r=Ne();return t.__=e,pe.componentDidCatch||(pe.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function Ce(){fe.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Fe),e.__H.__h.forEach(Be),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),fe=[]}d.__b=function(e){pe=null,_e&&_e(e)},d.__r=function(e){ge&&ge(e),de=0;var t=(pe=e.__c).__H;t&&(t.__h.forEach(Fe),t.__h.forEach(Be),t.__h=[])},d.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==fe.push(t)&&me===d.requestAnimationFrame||((me=d.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),Ee&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);Ee&&(t=requestAnimationFrame(r))})(Ce)),pe=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Fe),e.__h=e.__h.filter((function(e){return!e.__||Be(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(r,e.__v)}})),ye&&ye(e,t)},d.unmount=function(e){ve&&ve(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Fe)}catch(r){d.__e(r,t.__v)}};var Ee="function"==typeof requestAnimationFrame;function Fe(e){var t=pe;"function"==typeof e.__c&&e.__c(),pe=t}function Be(e){var t=pe;e.__c=e.__(),pe=t}function Me(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function je(e,t){return"function"==typeof t?t(e):t}var Te="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ie={},Le={},Pe={};Object.defineProperty(Pe,"__esModule",{value:!0}),Pe.ModelPath=Pe.Path=Pe.relativePath=void 0,Pe.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Re{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new Re(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Re(this.modelArr.slice(1),this.contextArr)}pop(){return new Re(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Re([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new Re([...this.modelArr],[...this.contextArr,t])}copy(){return new Re([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new ze(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,r)=>e===this.modelArr[t+r]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}Pe.Path=Re;class ze extends Re{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new ze(this.model,super.slice(e,t))}shift(){return new ze(this.model,super.shift())}pop(){return new ze(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new ze(this.model,super.modelPush(e))}contextPush(e){return new ze(this.model,super.contextPush(e))}copy(){return new ze(this.model,super.copy())}}Pe.ModelPath=ze;var Ue={};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.Errors=void 0;class $e{constructor(){this.errors=[]}add(e,t,...r){return this.errors.push({path:e,error:t,params:r}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}Ue.Errors=$e;var Xe={};function Je(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.hexId=Xe.quoteString=Xe.escapeString=void 0,Xe.escapeString=Je,Xe.quoteString=function(e){return`"${Je(e)}"`};const qe=e=>("0"+e.toString(16)).substr(-2);Xe.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,qe).join("")},Object.defineProperty(Le,"__esModule",{value:!0}),Le.DataModel=void 0;const He=Pe,We=Ue,Ze=Xe;class Ge{constructor(e,t){var r,n,i,o;this.historyMax=null!==(r=null==t?void 0:t.historyMax)&&void 0!==r?r:50,this.verbose=null!==(n=null==t?void 0:t.verbose)&&void 0!==n&&n,this.wrapLists=null!==(i=null==t?void 0:t.wrapLists)&&void 0!==i&&i,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Ge.wrapLists(a):a,this.listeners=[],this.errors=new We.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,r){if(0===e.getArray().length)return void this.reset(t,!0);let n=this.data;e.pop().forEach((e=>{void 0!==n[e]&&"string"!=typeof n[e]&&"number"!=typeof n[e]||(this.wrapLists&&"number"==typeof e?n[e]={node:{},id:Ze.hexId()}:n[e]={}),n=this.wrapLists&&"number"==typeof e?n[e].node:n[e]})),null!==n&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?n.splice(e.last(),1):delete n[e.last()]:this.wrapLists&&"number"==typeof e.last()?n[e.last()]={node:t,id:Ze.hexId()}:n[e.last()]=t,r||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ze.hexId()})));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)}));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,r])=>{t[e]=this.unwrapLists(r)}));for(const r of Object.getOwnPropertySymbols(e))t[r]=e[r];return t}return e}}Le.DataModel=Ge;var Ke,Ye={};Ke=Ye,Object.defineProperty(Ke,"__esModule",{value:!0}),Ke.Keep=Ke.Opt=Ke.Has=Ke.Mod=Ke.Base=void 0,Ke.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...r){return e.base({node:this},t,...r)},canUpdate:()=>!1,update:()=>[]},Ke.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Ke.Has=(e,t)=>Ke.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Ke.Opt=function(e){return c(s({},e),{optional:()=>!0})},Ke.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ve={};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.BooleanNode=void 0;const Qe=Le,et=Ye;Ve.BooleanNode=()=>c(s({},et.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||r.add(e,"error.expected_boolean"),t},hook(e,t,...r){var n;return(null!==(n=e.boolean)&&void 0!==n?n:e.base).call(e,{node:this},t,...r)}});var tt={},rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.ListNode=void 0;const nt=Le,it=Ye;rt.ListNode=(e,t)=>{var r,n;const i=null!==(r=null==t?void 0:t.minLength)&&void 0!==r?r:0,o=null!==(n=null==t?void 0:t.maxLength)&&void 0!==n?n:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},it.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(i)].map((t=>e.default())):[],navigate(t,r){const n=r+1;return t.getArray().length<=n?this:e.navigate(t,n)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,r,n,s){if(s.loose&&!Array.isArray(r)&&(r=s.wrapLists?nt.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(r))return n.add(t,"error.expected_list"),r;a&&(r.lengtho)?i===o?n.add(t,"error.invalid_list_range.exact",r.length,i):n.add(t,"error.invalid_list_range.between",r.length,i,o):r.lengtho&&n.add(t,"error.invalid_list_range.larger",r.length,o);const c=r.map(((r,i)=>{const o=e.validate(t.push(i),s.wrapLists?r.node:r,n,s);return s.wrapLists?{node:o,id:r.id}:o}));for(const e of Object.getOwnPropertySymbols(r))c[e]=r[e];return c},hook(r,n,...i){var o;return(null!==(o=r.list)&&void 0!==o?o:r.base).call(r,{node:this,children:e,config:null!=t?t:{}},n,...i)}})};var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.SwitchNode=void 0;const at=Ye;ot.SwitchNode=e=>c(s({},at.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var r;const n=t+1;return null===(r=this.activeCase(e.slice(0,n)))||void 0===r?void 0:r.node.navigate(e,t)},pathPush(e,t){var r,n;return null!==(n=null===(r=this.activeCase(e))||void 0===r?void 0:r.node.pathPush(e,t))&&void 0!==n?n:e},suggest(t,r){var n,i;return null!==(i=null===(n=this.activeCase(t))||void 0===n?void 0:n.node.suggest(t,r))&&void 0!==i?i:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,r))).reduce(((e,t)=>e.concat(t)))},validate(e,t,r,n){let i=this.activeCase(e);return void 0===i?t:i.node.validate(e,t,r,n)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,r){const n=(e,t)=>{var r,n;return(null!==(r=t.priority)&&void 0!==r?r:0)-(null!==(n=e.priority)&&void 0!==n?n:0)},i=e.filter((e=>e.match(t))).sort(n);return r&&0===i.length?e.sort(n)[0]:i.length>0?i[0]:void 0},hook(e,t,...r){return this.activeCase(t,!0).node.hook(e,t,...r)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=rt,r=ot;e.ChoiceNode=(e,t)=>{const n=r.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},n),{validate(e,t,r,i){let o=n.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,r,i)},hook(r,i,...o){var a;return(null!==(a=r.choice)&&void 0!==a?a:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:n},i,...o)}})};const n=r=>(n,i)=>e.ChoiceNode([{type:r,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:t.ListNode(n),change:e=>e?[e]:[]}],i);e.ObjectOrList=n("object"),e.StringOrList=n("string"),e.ObjectOrPreset=(t,r,n)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(n)[0]},{type:"object",node:r,change:e=>{var t;return null!==(t=n[e])&&void 0!==t?t:n[Object.keys(n)[0]]}}])}(tt);var st={};Object.defineProperty(st,"__esModule",{value:!0}),st.MapNode=void 0;const ct=Ye,lt=Le;st.MapNode=(e,t,r)=>c(s({},ct.Base),{type:()=>"map",default:()=>({}),navigate(e,r){const n=r+1;return e.getArray().length<=n?this:t.navigate(e,n)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(r,n,i,o){if(o.loose&&"object"!=typeof n&&(n=o.wrapLists?lt.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return i.add(r,"error.expected_object"),n;const a={};Object.keys(n).forEach((s=>{e.validate(r,s,i,o),a[s]=t.validate(r.push(s),n[s],i,o)}));for(const e of Object.getOwnPropertySymbols(n))a[e]=n[e];return a},validationOption(t){var n;return null!==(n=null==r?void 0:r.validation)&&void 0!==n?n:e.validationOption(t.push(""))},hook(n,i,...o){var a;return(null!==(a=n.map)&&void 0!==a?a:n.base).call(n,{node:this,keys:e,children:t,config:null!=r?r:{}},i,...o)}});var ut={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Ie,r=Le,n=Ye;e.NumberNode=e=>{var t,i,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(i=null==e?void 0:e.min)&&void 0!==i?i:-1/0,u=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,d=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},n.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,n,i){return i.loose&&"number"!=typeof t&&(t=i.wrapLists?r.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?n.add(e,"error.expected_number"):a&&!Number.isInteger(t)?n.add(e,"error.expected_integer"):d&&(tu)?n.add(e,"error.invalid_number_range.between",t,l,u):tu&&n.add(e,"error.invalid_number_range.larger",t,u),t},hook(t,r,...n){var i;return(null!==(i=t.number)&&void 0!==i?i:t.base).call(t,{node:this,integer:a,min:l,max:u,between:d,config:null!=e?e:{}},r,...n)}})},e.NumberEnum=({integer:r,values:n})=>t.Mod(e.NumberNode({integer:r}),(e=>({validate:(t,r,i,o)=>(r=e.validate(t,r,i,o),n.includes(r)||i.add(t,"error.invalid_number_enum",n.join(", ")),r)})))}(ut);var dt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ye,r=Pe,a=Ue,u=Xe,d=Le;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(p,m)=>{var h,f;const _=p,{[h=e.Switch]:g,[f=e.Case]:b}=_,y=((e,t)=>{var r={};for(var a in e)i.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(null!=e&&n)for(var a of n(e))t.indexOf(a)<0&&o.call(e,a)&&(r[a]=e[a]);return r})(_,[l(h),l(f)]),v=e=>{if(void 0===g)return y;const t=r.relativePath(e,g).get(),n=b[t];return s(s({},y),n)},x=(e,t)=>{var n;const i=g?r.relativePath(e,g).get():void 0,o=g&&null!==(n=b[i])&&void 0!==n?n:{},a=Object.keys(o),s=(null==m?void 0:m.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[m.context])):e;return(!(null==m?void 0:m.disableSwitchContext)&&i&&a.includes(t)?s.contextPush(i):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==m?void 0:m.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const r=t+1,n=e.getArray();if(n.length<=r)return this;const i=v(e.slice(0,r))[n[r]];return null==i?void 0:i.navigate(e,r)},pathPush:(e,t)=>x(e,t.toString()),suggest(e,t){const r=v(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!n.includes(e))).map(u.quoteString)},validate(e,t,n,i){if(i.loose&&"object"!=typeof t&&(t=i.wrapLists?d.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let o=y;if(g){const n=r.relativePath(e,g);let c=n.get();if(e.equals(n.pop())){const r=n.last();c=y[r].validate(e.push(r),t[r],new a.Errors,i)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),u=new Set([...l,...Object.keys(t)]),p={};u.forEach((r=>{if(c.includes(r)){if(!o[r].enabled(e))return;const a=o[r].validate(e.push(r),t[r],n,i);!o[r].keep()&&o[r].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete p[r]:(p[r]=a,e.getModel().set(e.push(r),a,!0))}else p[r]=t[r]}));for(const r of Object.getOwnPropertySymbols(t))p[r]=t[r];return p},hook(e,t,...r){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:y,config:null!=m?m:{},filter:g,cases:b,getActiveFields:v,getChildModelPath:x},t,...r)}})}}(dt);var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.Reference=void 0,pt.Reference=(e,t)=>({type(r){return e.get(t).type.bind(this)(r)},category(r){return e.get(t).category.bind(this)(r)},default(){return e.get(t).default.bind(this)()},transform:(r,n)=>e.get(t).transform(r,n),enabled(r){return e.get(t).enabled.bind(this)(r)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(r,n){return e.get(t).navigate.bind(this)(r,n)},pathPush(r,n){return e.get(t).pathPush.bind(this)(r,n)},suggest(r,n){return e.get(t).suggest.bind(this)(r,n)},validate(r,n,i,o){return e.get(t).validate.bind(this)(r,n,i,o)},validationOption(r){return e.get(t).validationOption.bind(this)(r)},hook(r,n,...i){return e.get(t).hook.bind(this)(r,n,...i)},activeCase(r,n){return e.get(t).activeCase.bind(this)(r,n)},canUpdate(r,n){return e.get(t).canUpdate.bind(this)(r,n)},update(r,n){return e.get(t).update.bind(this)(r,n)}});var mt={};Object.defineProperty(mt,"__esModule",{value:!0}),mt.StringNode=void 0;const ht=Ye,ft=Xe,_t=Le,gt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},bt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};mt.StringNode=(e,t)=>{const r=gt(t)?"string"==typeof t.enum?()=>{var r;return null!==(r=null==e?void 0:e.get(t.enum))&&void 0!==r?r:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==r?r:[]}:()=>{var r;return null!==(r=null==e?void 0:e.get(t.params.pool))&&void 0!==r?r:[]}:()=>t.params.pool:()=>[];return c(s({},ht.Base),{type:()=>"string",default:()=>"",validate(e,n,i,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?_t.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return i.add(e,"error.expected_string"),n;if(bt(t)&&("resource"===t.validator&&n.length>0&&!n.includes(":")&&(n="#"===n[0]?"#minecraft:"+n.slice(1):"minecraft:"+n),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===n[0]||t.params.isDefinition||t.params.allowUnknown)))return n;if(gt(t)&&t.additional)return n;const a=r();return a.length>0&&!a.includes(n)&&i.add(e,"error.invalid_enum_option",n),n},suggest:()=>r().map(ft.quoteString),validationOption:()=>bt(t)?t:void 0,hook(e,n,...i){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:r,config:t},n,...i)}})};var yt={};Object.defineProperty(yt,"__esModule",{value:!0});var vt={};Object.defineProperty(vt,"__esModule",{value:!0}),vt.CollectionRegistry=vt.SchemaRegistry=void 0;vt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};vt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var xt={};Object.defineProperty(xt,"__esModule",{value:!0}),function(e){var t=Te&&Te.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=Te&&Te.__exportStar||function(e,r){for(var n in e)"default"===n||r.hasOwnProperty(n)||t(r,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),r(Le,e),r(Pe,e),r(Ue,e),r(Ye,e),r(Ve,e),r(tt,e),r(rt,e),r(st,e),r(ut,e),r(dt,e),r(pt,e),r(mt,e),r(ot,e),r(yt,e),r(vt,e),r(xt,e)}(Ie);var Nt=function(e){return(e=e||{}).circles?function(e){var t=[],r=[];return e.proto?function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return n(i,e);if(i instanceof Map)return new Map(n(Array.from(i),e));if(i instanceof Set)return new Set(n(Array.from(i),e));var o={};for(var a in t.push(i),r.push(o),i){var s=i[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=wt(s);else{var c=t.indexOf(s);o[a]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),o}:function e(i){if("object"!=typeof i||null===i)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return n(i,e);if(i instanceof Map)return new Map(n(Array.from(i),e));if(i instanceof Set)return new Set(n(Array.from(i),e));var o={};for(var a in t.push(i),r.push(o),i)if(!1!==Object.hasOwnProperty.call(i,a)){var s=i[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=wt(s);else{var c=t.indexOf(s);o[a]=-1!==c?r[c]:e(s)}}return t.pop(),r.pop(),o};function n(e,n){for(var i=Object.keys(e),o=new Array(i.length),a=0;a({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,n;return void 0===e?0:null!==(n=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:i({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(Dt);var Ct={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Ie,r=Dt;e.initPredicatesSchemas=function(n,i){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,i),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);n.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(r.Range()),durability:t.Opt(r.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(r.Range())},{context:"enchantment"})),n.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(r.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},n.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),n.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:r.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),n.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(r.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(r.Range()),duration:t.Opt(r.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),n.register("distance_predicate",t.ObjectNode({x:t.Opt(r.Range()),y:t.Opt(r.Range()),z:t.Opt(r.Range()),absolute:t.Opt(r.Range()),horizontal:t.Opt(r.Range())},{context:"distance"})),n.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",t.ObjectNode({dealt:t.Opt(r.Range()),taken:t.Opt(r.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Ct),Object.defineProperty(At,"__esModule",{value:!0}),At.initAdvancementSchemas=void 0;const Et=Ie,Ft=Dt,Bt=Ct;At.initAdvancementSchemas=function(e,t){const r=Et.Reference.bind(void 0,e),n=Et.StringNode.bind(void 0,t);e.register("advancement",Et.Mod(Et.ObjectNode({display:Et.Opt(Et.Mod(Et.ObjectNode({icon:Et.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Et.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Et.Opt(n()),frame:Et.Opt(n({enum:["task","challenge","goal"]})),show_toast:Et.Opt(Et.BooleanNode()),announce_to_chat:Et.Opt(Et.BooleanNode()),hidden:Et.Opt(Et.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Et.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Et.MapNode(n(),r("advancement_criteria")),requirements:Et.Opt(Et.ListNode(Et.ListNode(n()))),rewards:Et.Opt(Et.ObjectNode({function:Et.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Et.Opt(Et.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Et.Opt(Et.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Et.Opt(Et.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Et.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Et.Opt(Et.ObjectNode({[Et.Switch]:["pop",{push:"trigger"}],[Et.Case]:{"minecraft:bee_nest_destroyed":{block:Et.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Et.Opt(Et.NumberNode({integer:!0})),item:Et.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:Et.Opt(r("entity_predicate")),partner:Et.Opt(r("entity_predicate")),child:Et.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:Et.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Et.Opt(n({enum:"dimension"})),to:Et.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Et.Opt(Et.ListNode(Et.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:Et.Opt(Ft.Range())},"minecraft:consume_item":{item:Et.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Et.Opt(r("entity_predicate")),zombie:Et.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:Et.Opt(Et.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Et.Opt(n({validator:"resource",params:{pool:"block"}})),state:Et.Opt(Et.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Et.Opt(Ft.Range()),item:Et.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Et.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:Et.Opt(r("entity_predicate")),killing_blow:Et.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Et.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Et.Opt(r("entity_predicate")),item:Et.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Bt.LocationFields,"minecraft:inventory_changed":{slots:Et.Opt(Et.ObjectNode({empty:Et.Opt(Ft.Range()),occupied:Et.Opt(Ft.Range()),full:Et.Opt(Ft.Range())})),items:Et.Opt(Et.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Et.Opt(Ft.Range()),durability:Et.Opt(Ft.Range()),item:Et.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Et.Opt(Ft.Range()),victims:Et.Opt(Et.ListNode(Et.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:Et.Opt(Ft.Range()),duration:Et.Opt(Ft.Range())},"minecraft:location":Bt.LocationFields,"minecraft:nether_travel":{distance:Et.Opt(Ft.Range()),entered:Et.Opt(r("location_predicate")),exited:Et.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Et.Opt(n({validator:"resource",params:{pool:"block"}})),state:Et.Opt(Et.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Et.Opt(r("item_predicate")),location:Et.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:Et.Opt(r("damage_predicate")),entity:Et.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:Et.Opt(r("entity_predicate")),killing_blow:Et.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Et.Opt(Et.ObjectNode({block:Et.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Et.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Et.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Bt.LocationFields,"minecraft:slide_down_block":{block:Et.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Et.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:Et.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:Et.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:Et.Opt(Ft.Range())},"minecraft:used_totem":{item:Et.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Et.Opt(r("entity_predicate")),item:Et.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Bt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Mt={},jt={};Object.defineProperty(jt,"__esModule",{value:!0}),jt.initModelSchemas=void 0;const Tt=Ie;jt.initModelSchemas=function(e,t){Tt.Reference.bind(void 0,e);const r=Tt.StringNode.bind(void 0,t),n=(e,t,r)=>Tt.ListNode(Tt.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=Tt.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Tt.Mod(Tt.ObjectNode({parent:Tt.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Tt.Opt(Tt.BooleanNode()),gui_light:Tt.Opt(r({enum:"gui_light"})),textures:Tt.Opt(Tt.MapNode(r(),i)),elements:Tt.Opt(Tt.ListNode(Tt.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Tt.Opt(Tt.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:Tt.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Tt.Opt(Tt.BooleanNode())})),shade:Tt.Opt(Tt.BooleanNode()),faces:Tt.MapNode(r({enum:"direction"}),Tt.ObjectNode({texture:i,uv:Tt.Opt(n(4)),cullface:Tt.Opt(r({enum:"direction"})),rotation:Tt.Opt(Tt.NumberNode({integer:!0})),tintindex:Tt.Opt(Tt.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Tt.Opt(Tt.MapNode(r({enum:"display_position"}),Tt.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Tt.Opt(Tt.ListNode(Tt.ObjectNode({predicate:Tt.MapNode(r({enum:"item_model_predicates"}),Tt.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var It={};Object.defineProperty(It,"__esModule",{value:!0}),It.initBlockDefinitionSchemas=void 0;const Lt=Ie;It.initBlockDefinitionSchemas=function(e,t){const r=Lt.Reference.bind(void 0,e),n=Lt.StringNode.bind(void 0,t);e.register("block_definition",Lt.Mod(Lt.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Lt.ObjectNode({variants:Lt.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Lt.ObjectNode({multipart:Lt.ListNode(Lt.ObjectNode({when:Lt.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const i={model:n({validator:"resource",params:{pool:"$model"}}),x:Lt.Opt(Lt.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Lt.Opt(Lt.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Lt.Opt(Lt.BooleanNode())};e.register("model_variant",Lt.ChoiceNode([{type:"object",node:Lt.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Lt.ListNode(Lt.ObjectNode(c(s({},i),{weight:Lt.Opt(Lt.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Lt.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Lt.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Lt.ObjectNode({OR:Lt.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initAssetsSchemas=void 0;const Pt=jt,Rt=It;Mt.initAssetsSchemas=function(e,t){Rt.initBlockDefinitionSchemas(e,t),Pt.initModelSchemas(e,t)};var zt={};Object.defineProperty(zt,"__esModule",{value:!0}),zt.initConditionSchemas=void 0;const Ut=Ie,$t=Dt;zt.initConditionSchemas=function(e,t){const r=Ut.Reference.bind(void 0,e),n=Ut.StringNode.bind(void 0,t);e.register("predicate",Ut.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Ut.Mod(Ut.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ut.Switch]:[{push:"condition"}],[Ut.Case]:$t.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Xt={},Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.LootFunctions=Jt.LootConditions=Jt.LootCopySources=Jt.LootEntitySources=Jt.LootTableTypes=void 0,Jt.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Jt.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Jt.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Jt.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Jt.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.initLootTableSchemas=void 0;const qt=Ie,Ht=Jt,Wt=Dt;Xt.initLootTableSchemas=function(e,t){const r=qt.Reference.bind(void 0,e),n=qt.StringNode.bind(void 0,t),i={conditions:qt.Opt(qt.ListNode(r("loot_condition")))},o=s({functions:qt.Opt(qt.ListNode(r("loot_function")))},i);function a(e,r,n){const i=[],o=n=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ht.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new qt.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),qt.SwitchNode(i)}const l=a(Ht.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Ht.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Ht.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=a(Ht.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",qt.Mod(qt.ObjectNode({type:qt.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:qt.Opt(qt.ListNode(qt.Mod(qt.ObjectNode(s({rolls:Wt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:qt.Opt(Wt.Range({integer:!0})),entries:qt.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:qt.Opt(qt.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const m={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",qt.Mod(qt.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:qt.Opt(qt.Mod(qt.NumberNode({integer:!0,min:1}),m)),quality:qt.Opt(qt.Mod(qt.NumberNode({integer:!0}),m)),[qt.Switch]:[{push:"type"}],[qt.Case]:{"minecraft:alternatives":s({children:qt.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:qt.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:qt.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:qt.Opt(qt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",qt.Mod(qt.ObjectNode({function:u,[qt.Switch]:[{push:"function"}],[qt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:qt.Mod(qt.ObjectNode({bonusMultiplier:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:p},"minecraft:copy_nbt":{source:p,ops:qt.ListNode(qt.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:qt.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:qt.Opt(qt.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Wt.Range({allowBinomial:!0}),treasure:qt.Opt(qt.BooleanNode())},"minecraft:exploration_map":{destination:qt.Opt(n({enum:"structure_feature"})),decoration:qt.Opt(n({enum:"map_decoration"})),zoom:qt.Opt(qt.NumberNode({integer:!0})),search_radius:qt.Opt(qt.NumberNode({integer:!0})),skip_existing_chunks:qt.Opt(qt.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Wt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Wt.Range({bounds:!0}),limit:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:qt.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:qt.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Wt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Wt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:qt.Opt(d),lore:qt.ListNode(r("text_component")),replace:qt.Opt(qt.BooleanNode())},"minecraft:set_name":{entity:qt.Opt(d),name:qt.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:qt.Opt(qt.ListNode(qt.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Wt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),i)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",qt.Mod(qt.ObjectNode({condition:l,[qt.Switch]:[{push:"condition"}],[qt.Case]:c(s({},Wt.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:qt.MapNode(n({validator:"objective"}),Wt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",qt.Mod(qt.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Wt.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:qt.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Zt={};Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.initPackMcmetaSchemas=void 0;const Gt=Ie;Zt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Gt.Mod(Gt.ObjectNode({pack:Gt.Mod(Gt.ObjectNode({pack_format:Gt.Mod(Gt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Gt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Kt={};Object.defineProperty(Kt,"__esModule",{value:!0}),Kt.initRecipeSchemas=void 0;const Yt=Ie;Kt.initRecipeSchemas=function(e,t){const r=Yt.Reference.bind(void 0,e),n=Yt.StringNode.bind(void 0,t);e.register("recipe",Yt.Mod(Yt.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Yt.Switch]:[{push:"type"}],[Yt.Case]:{"minecraft:crafting_shaped":{group:Yt.Opt(n({enum:"recipe_group",additional:!0})),pattern:Yt.ListNode(n()),key:Yt.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Yt.Opt(n()),ingredients:Yt.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Yt.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yt.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yt.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yt.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yt.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Yt.NumberNode({integer:!0})},"minecraft:smithing":{group:Yt.Opt(n()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yt.Mod(Yt.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yt.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yt.Mod(Yt.ObjectNode({item:Yt.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Yt.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yt.Mod(Yt.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Vt={};Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.initTagsSchemas=void 0;const Qt=Ie;Vt.initTagsSchemas=function(e,t){const r=Qt.StringNode.bind(void 0,t),n=e=>Qt.Mod(Qt.ObjectNode({replace:Qt.Opt(Qt.BooleanNode()),values:Qt.ListNode(Qt.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qt.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qt.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var er={};Object.defineProperty(er,"__esModule",{value:!0}),er.initTextComponentSchemas=void 0;const tr=Ie;er.initTextComponentSchemas=function(e,t){const r=tr.Reference.bind(void 0,e),n=tr.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",tr.Mod(tr.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:i},{type:"number",node:tr.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:tr.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:tr.Opt(tr.BooleanNode()),italic:tr.Opt(tr.BooleanNode()),underlined:tr.Opt(tr.BooleanNode()),strikethrough:tr.Opt(tr.BooleanNode()),obfuscated:tr.Opt(tr.BooleanNode()),insertion:tr.Opt(n()),clickEvent:tr.Opt(tr.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[tr.Switch]:[{push:"action"}],[tr.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:tr.Opt(tr.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[tr.Switch]:[{push:"action"}],[tr.Case]:{show_text:{value:tr.Opt(r("text_component"))},show_item:{value:tr.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:tr.Opt(tr.ObjectNode({name:tr.Opt(n()),type:tr.Opt(n()),id:tr.Opt(n())}))}}})),extra:tr.Opt(r("text_component_list"))};e.register("text_component_object",tr.Mod(tr.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:tr.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:tr.ObjectNode(s({translate:n(),with:tr.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:tr.ObjectNode(s({score:tr.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:tr.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:tr.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:tr.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:tr.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:tr.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:tr.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:tr.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:tr.Opt(tr.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",tr.Mod(tr.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(St,"__esModule",{value:!0}),St.initSchemas=void 0;const rr=At,nr=Mt,ir=Dt,or=zt,ar=Xt,sr=Zt,cr=Ct,lr=Kt,ur=Vt,dr=er;St.initSchemas=function(e,t){ir.initCommonSchemas(e,t),cr.initPredicatesSchemas(e,t),rr.initAdvancementSchemas(e,t),nr.initAssetsSchemas(e,t),or.initConditionSchemas(e,t),ar.initLootTableSchemas(e,t),sr.initPackMcmetaSchemas(e,t),lr.initRecipeSchemas(e,t),ur.initTagsSchemas(e,t),dr.initTextComponentSchemas(e,t)};var pr=Te&&Te.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),mr=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hr=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&pr(t,e,r);return mr(t,e),t};Object.defineProperty(kt,"__esModule",{value:!0});var fr=kt.getSchemas=kt.getCollections=void 0;const _r=Ie,gr=Ot,br=St;var yr=kt.lootContext=hr(Jt);var vr=kt.getCollections=function(){const e=new _r.CollectionRegistry;return gr.initCollections(e),e};fr=kt.getSchemas=function(e){const t=new _r.SchemaRegistry;return br.initSchemas(t,e),t};var xr=Object.freeze(Object.assign(Object.create(null),kt,{[Symbol.toStringTag]:"Module",get getSchemas(){return fr},get getCollections(){return vr},lootContext:yr,default:kt})),Nr={},wr={};Object.defineProperty(wr,"__esModule",{value:!0}),wr.initCollections=void 0,wr.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var kr={},Or={},Sr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Ie;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,n){const i=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,r,n;return void 0===e?0:null!==(n=null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:i({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,r;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:i({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:i({enum:"entity_source"}),scores:t.MapNode(i({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Sr),Object.defineProperty(Or,"__esModule",{value:!0}),Or.initAdvancementSchemas=void 0;const Ar=Ie,Dr=Sr;Or.initAdvancementSchemas=function(e,t){const r=Ar.Reference.bind(void 0,e),n=Ar.StringNode.bind(void 0,t),i=Ar.ChoiceNode([{type:"object",node:Ar.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:Ar.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ar.Mod(Ar.ObjectNode({display:Ar.Opt(Ar.Mod(Ar.ObjectNode({icon:Ar.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ar.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Ar.Opt(n()),frame:Ar.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ar.Opt(Ar.BooleanNode()),announce_to_chat:Ar.Opt(Ar.BooleanNode()),hidden:Ar.Opt(Ar.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ar.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ar.MapNode(n(),r("advancement_criteria")),requirements:Ar.Opt(Ar.ListNode(Ar.ListNode(n()))),rewards:Ar.Opt(Ar.ObjectNode({function:Ar.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ar.Opt(Ar.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ar.Opt(Ar.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ar.Opt(Ar.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ar.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ar.Opt(Ar.ObjectNode({player:Ar.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ar.Switch]:["pop",{push:"trigger"}],[Ar.Case]:{"minecraft:bee_nest_destroyed":{block:Ar.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ar.Opt(Ar.NumberNode({integer:!0})),item:Ar.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Ar.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ar.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Ar.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ar.Opt(Ar.ListNode(i))},"minecraft:construct_beacon":{level:Ar.Opt(Dr.Range())},"minecraft:consume_item":{item:Ar.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Ar.Opt(Ar.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Ar.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ar.Opt(Ar.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ar.Opt(Dr.Range()),item:Ar.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ar.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Ar.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ar.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Ar.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Ar.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Ar.Opt(Ar.ObjectNode({empty:Ar.Opt(Dr.Range()),occupied:Ar.Opt(Dr.Range()),full:Ar.Opt(Dr.Range())})),items:Ar.Opt(Ar.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Ar.Opt(Dr.Range()),durability:Ar.Opt(Dr.Range()),item:Ar.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Ar.Opt(r("item_predicate")),location:Ar.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ar.Opt(Dr.Range()),victims:Ar.Opt(Ar.ListNode(i))},"minecraft:levitation":{distance:Ar.Opt(Dr.Range()),duration:Ar.Opt(Dr.Range())},"minecraft:location":{location:Ar.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:Ar.Opt(Dr.Range()),entered:Ar.Opt(r("location_predicate")),exited:Ar.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Ar.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ar.Opt(Ar.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ar.Opt(r("item_predicate")),location:Ar.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ar.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Ar.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Ar.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Ar.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Ar.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ar.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:Ar.Opt(Dr.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Ar.Opt(r("entity_predicate")),item:Ar.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Ar.Opt(Dr.Range())},"minecraft:used_totem":{item:Ar.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Ar.Opt(r("entity_predicate")),item:Ar.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Cr={},Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.initModelSchemas=void 0;const Fr=Ie;Er.initModelSchemas=function(e,t){Fr.Reference.bind(void 0,e);const r=Fr.StringNode.bind(void 0,t),n=(e,t,r)=>Fr.ListNode(Fr.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=Fr.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Fr.Mod(Fr.ObjectNode({parent:Fr.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Fr.Opt(Fr.BooleanNode()),gui_light:Fr.Opt(r({enum:"gui_light"})),textures:Fr.Opt(Fr.MapNode(r(),i)),elements:Fr.Opt(Fr.ListNode(Fr.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Fr.Opt(Fr.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:Fr.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Fr.Opt(Fr.BooleanNode())})),shade:Fr.Opt(Fr.BooleanNode()),faces:Fr.MapNode(r({enum:"direction"}),Fr.ObjectNode({texture:i,uv:Fr.Opt(n(4)),cullface:Fr.Opt(r({enum:"direction"})),rotation:Fr.Opt(Fr.NumberNode({integer:!0})),tintindex:Fr.Opt(Fr.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Fr.Opt(Fr.MapNode(r({enum:"display_position"}),Fr.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Fr.Opt(Fr.ListNode(Fr.ObjectNode({predicate:Fr.MapNode(r({enum:"item_model_predicates"}),Fr.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Br={};Object.defineProperty(Br,"__esModule",{value:!0}),Br.initBlockDefinitionSchemas=void 0;const Mr=Ie;Br.initBlockDefinitionSchemas=function(e,t){const r=Mr.Reference.bind(void 0,e),n=Mr.StringNode.bind(void 0,t);e.register("block_definition",Mr.Mod(Mr.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Mr.ObjectNode({variants:Mr.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Mr.ObjectNode({multipart:Mr.ListNode(Mr.ObjectNode({when:Mr.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const i={model:n({validator:"resource",params:{pool:"$model"}}),x:Mr.Opt(Mr.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Mr.Opt(Mr.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Mr.Opt(Mr.BooleanNode())};e.register("model_variant",Mr.ChoiceNode([{type:"object",node:Mr.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Mr.ListNode(Mr.ObjectNode(c(s({},i),{weight:Mr.Opt(Mr.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Mr.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Mr.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Mr.ObjectNode({OR:Mr.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.initAssetsSchemas=void 0;const jr=Er,Tr=Br;Cr.initAssetsSchemas=function(e,t){Tr.initBlockDefinitionSchemas(e,t),jr.initModelSchemas(e,t)};var Ir={};Object.defineProperty(Ir,"__esModule",{value:!0}),Ir.initConditionSchemas=void 0;const Lr=Ie,Pr=Sr;Ir.initConditionSchemas=function(e,t){const r=Lr.Reference.bind(void 0,e),n=Lr.StringNode.bind(void 0,t);e.register("predicate",Lr.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Lr.Mod(Lr.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Lr.Switch]:[{push:"condition"}],[Lr.Case]:Pr.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.initDimensionSchemas=void 0;const zr=Ie,Ur=Sr;Rr.initDimensionSchemas=function(e,t){const r=zr.Reference.bind(void 0,e),n=zr.StringNode.bind(void 0,t),i=e=>zr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",zr.Mod(zr.ObjectNode({type:Ur.DimensionTypePresets(r("dimension_type")),generator:zr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[zr.Switch]:[{push:"type"}],[zr.Case]:{"minecraft:noise":{seed:zr.NumberNode({integer:!0}),settings:Ur.NoiseSettingsPresets(r("noise_settings")),biome_source:zr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[zr.Switch]:[{push:"type"}],[zr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:zr.NumberNode({integer:!0}),preset:zr.Opt(n({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(zr.Mod(zr.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:zr.Opt(zr.NumberNode({integer:!0,min:0,max:62})),biomes:zr.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:zr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:zr.NumberNode({integer:!0}),large_biomes:zr.Opt(zr.BooleanNode()),legacy_biome_init_layer:zr.Opt(zr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:zr.ObjectNode({biome:zr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:zr.Opt(zr.BooleanNode()),features:zr.Opt(zr.BooleanNode()),layers:zr.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",zr.Mod(zr.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:zr.ObjectNode({altitude:zr.NumberNode(),temperature:zr.NumberNode(),humidity:zr.NumberNode(),weirdness:zr.NumberNode(),offset:zr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",zr.Mod(zr.ObjectNode({firstOctave:zr.NumberNode({integer:!0}),amplitudes:zr.ListNode(zr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var $r={};Object.defineProperty($r,"__esModule",{value:!0}),$r.initDimensionTypeSchemas=void 0;const Xr=Ie,Jr=Sr;$r.initDimensionTypeSchemas=function(e,t){const r=Xr.StringNode.bind(void 0,t);e.register("dimension_type",Xr.Mod(Xr.ObjectNode({name:Xr.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Xr.BooleanNode(),natural:Xr.BooleanNode(),piglin_safe:Xr.BooleanNode(),respawn_anchor_works:Xr.BooleanNode(),bed_works:Xr.BooleanNode(),has_raids:Xr.BooleanNode(),has_skylight:Xr.BooleanNode(),has_ceiling:Xr.BooleanNode(),coordinate_scale:Xr.NumberNode({min:1e-5,max:3e7}),ambient_light:Xr.NumberNode(),fixed_time:Xr.Opt(Xr.NumberNode({integer:!0})),logical_height:Xr.NumberNode({integer:!0,min:0,max:256}),effects:Xr.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Jr.DefaultDimensionType}))};var qr={},Hr={};Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.LootFunctions=Hr.LootConditions=Hr.LootCopySources=Hr.LootEntitySources=Hr.LootTableTypes=void 0,Hr.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Hr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Hr.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Hr.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(qr,"__esModule",{value:!0}),qr.initLootTableSchemas=void 0;const Wr=Ie,Zr=Hr,Gr=Sr;qr.initLootTableSchemas=function(e,t){const r=Wr.Reference.bind(void 0,e),n=Wr.StringNode.bind(void 0,t),i={conditions:Wr.Opt(Wr.ListNode(r("loot_condition")))},o=s({functions:Wr.Opt(Wr.ListNode(r("loot_function")))},i);function a(e,r,n){const i=[],o=n=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Zr.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Wr.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Wr.SwitchNode(i)}const l=a(Zr.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Zr.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Zr.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=a(Zr.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Wr.Mod(Wr.ObjectNode({type:Wr.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Wr.Opt(Wr.ListNode(Wr.Mod(Wr.ObjectNode(s({rolls:Gr.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Wr.Opt(Gr.Range({integer:!0})),entries:Wr.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Wr.Opt(Wr.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const m={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Wr.Mod(Wr.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0,min:1}),m)),quality:Wr.Opt(Wr.Mod(Wr.NumberNode({integer:!0}),m)),[Wr.Switch]:[{push:"type"}],[Wr.Case]:{"minecraft:alternatives":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Wr.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Wr.Opt(Wr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Wr.Mod(Wr.ObjectNode({function:u,[Wr.Switch]:[{push:"function"}],[Wr.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Wr.Mod(Wr.ObjectNode({bonusMultiplier:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Wr.Mod(Wr.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:p},"minecraft:copy_nbt":{source:p,ops:Wr.ListNode(Wr.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:Wr.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Wr.Opt(Wr.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Gr.Range({allowBinomial:!0}),treasure:Wr.Opt(Wr.BooleanNode())},"minecraft:exploration_map":{destination:Wr.Opt(n({enum:"map_feature"})),decoration:Wr.Opt(n({enum:"map_decoration"})),zoom:Wr.Opt(Wr.NumberNode({integer:!0})),search_radius:Wr.Opt(Wr.NumberNode({integer:!0})),skip_existing_chunks:Wr.Opt(Wr.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Gr.Range({bounds:!0})},"minecraft:looting_enchant":{count:Gr.Range({bounds:!0}),limit:Wr.Opt(Wr.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Wr.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Wr.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Gr.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Gr.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Wr.Opt(Wr.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Wr.Opt(d),lore:Wr.ListNode(r("text_component")),replace:Wr.Opt(Wr.BooleanNode())},"minecraft:set_name":{entity:Wr.Opt(d),name:Wr.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Wr.Opt(Wr.ListNode(Wr.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Gr.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),i)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Wr.Mod(Wr.ObjectNode({condition:l,[Wr.Switch]:[{push:"condition"}],[Wr.Case]:c(s({},Gr.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Wr.MapNode(n({validator:"objective"}),Gr.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Wr.Mod(Wr.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Gr.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Wr.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initPackMcmetaSchemas=void 0;const Yr=Ie;Kr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Yr.Mod(Yr.ObjectNode({pack:Yr.Mod(Yr.ObjectNode({pack_format:Yr.Mod(Yr.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Yr.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Vr={};Object.defineProperty(Vr,"__esModule",{value:!0}),Vr.initPredicatesSchemas=void 0;const Qr=Ie,en=Sr;Vr.initPredicatesSchemas=function(e,t){const r=Qr.Reference.bind(void 0,e),n=Qr.StringNode.bind(void 0,t),i=Qr.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Qr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Qr.ObjectNode({min:Qr.Opt(Qr.NumberNode({integer:!0})),max:Qr.Opt(Qr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Qr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Qr.ObjectNode({item:Qr.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Qr.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:Qr.Opt(en.Range()),durability:Qr.Opt(en.Range()),potion:Qr.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Qr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Qr.Opt(Qr.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Qr.ObjectNode({enchantment:Qr.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:Qr.Opt(en.Range())},{context:"enchantment"})),e.register("block_predicate",Qr.ObjectNode({block:Qr.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Qr.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Qr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Qr.Opt(Qr.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Qr.ObjectNode({fluid:Qr.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Qr.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Qr.Opt(Qr.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",Qr.ObjectNode({position:Qr.Opt(Qr.ObjectNode({x:Qr.Opt(en.Range()),y:Qr.Opt(en.Range()),z:Qr.Opt(en.Range())})),biome:Qr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Qr.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Qr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Qr.Opt(Qr.ObjectNode({light:Qr.Opt(en.Range({integer:!0,min:0,max:15}))})),smokey:Qr.Opt(Qr.BooleanNode()),block:Qr.Opt(r("block_predicate")),fluid:Qr.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Qr.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:en.Range(),[Qr.Switch]:[{push:"type"}],[Qr.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Qr.ObjectNode({gamemode:Qr.Opt(n({enum:"gamemode"})),level:Qr.Opt(en.Range()),advancements:Qr.Opt(Qr.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Qr.ChoiceNode([{type:"boolean",node:Qr.BooleanNode(),change:e=>!0},{type:"object",node:Qr.MapNode(n(),Qr.BooleanNode())}]))),recipes:Qr.Opt(Qr.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Qr.BooleanNode())),stats:Qr.Opt(Qr.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Qr.ObjectNode({amplifier:Qr.Opt(en.Range()),duration:Qr.Opt(en.Range()),ambient:Qr.Opt(Qr.BooleanNode()),visible:Qr.Opt(Qr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Qr.ObjectNode({x:Qr.Opt(en.Range()),y:Qr.Opt(en.Range()),z:Qr.Opt(en.Range()),absolute:Qr.Opt(en.Range()),horizontal:Qr.Opt(en.Range())},{context:"distance"})),e.register("entity_predicate",Qr.ObjectNode({type:Qr.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Qr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Qr.Opt(n({validator:"team"})),location:Qr.Opt(r("location_predicate")),distance:Qr.Opt(r("distance_predicate")),flags:Qr.Opt(Qr.ObjectNode({is_on_fire:Qr.Opt(Qr.BooleanNode()),is_sneaking:Qr.Opt(Qr.BooleanNode()),is_sprinting:Qr.Opt(Qr.BooleanNode()),is_swimming:Qr.Opt(Qr.BooleanNode()),is_baby:Qr.Opt(Qr.BooleanNode())})),equipment:Qr.Opt(Qr.MapNode(n({enum:"slot"}),r("item_predicate"))),vehicle:Qr.Opt(r("entity_predicate")),targeted_entity:Qr.Opt(r("entity_predicate")),player:Qr.Opt(r("player_predicate")),fishing_hook:Qr.Opt(Qr.ObjectNode({in_open_water:Qr.Opt(Qr.BooleanNode())})),effects:Qr.Opt(Qr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Qr.ObjectNode({is_explosion:Qr.Opt(Qr.BooleanNode()),is_fire:Qr.Opt(Qr.BooleanNode()),is_magic:Qr.Opt(Qr.BooleanNode()),is_projectile:Qr.Opt(Qr.BooleanNode()),is_lightning:Qr.Opt(Qr.BooleanNode()),bypasses_armor:Qr.Opt(Qr.BooleanNode()),bypasses_invulnerability:Qr.Opt(Qr.BooleanNode()),bypasses_magic:Qr.Opt(Qr.BooleanNode()),source_entity:Qr.Opt(r("entity_predicate")),direct_entity:Qr.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Qr.ObjectNode({dealt:Qr.Opt(en.Range()),taken:Qr.Opt(en.Range()),blocked:Qr.Opt(Qr.BooleanNode()),source_entity:Qr.Opt(r("entity_predicate")),type:Qr.Opt(r("damage_source_predicate"))},{context:"damage"}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initRecipeSchemas=void 0;const rn=Ie;tn.initRecipeSchemas=function(e,t){const r=rn.Reference.bind(void 0,e),n=rn.StringNode.bind(void 0,t);e.register("recipe",rn.Mod(rn.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[rn.Switch]:[{push:"type"}],[rn.Case]:{"minecraft:crafting_shaped":{group:rn.Opt(n({enum:"recipe_group",additional:!0})),pattern:rn.ListNode(n()),key:rn.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:rn.Opt(n()),ingredients:rn.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:rn.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:rn.Opt(rn.NumberNode()),cookingtime:rn.Opt(rn.Mod(rn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:rn.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:rn.Opt(rn.NumberNode()),cookingtime:rn.Opt(rn.Mod(rn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:rn.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:rn.Opt(rn.NumberNode()),cookingtime:rn.Opt(rn.Mod(rn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:rn.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:rn.Opt(rn.NumberNode()),cookingtime:rn.Opt(rn.Mod(rn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:rn.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:rn.NumberNode({integer:!0})},"minecraft:smithing":{group:rn.Opt(n()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",rn.Mod(rn.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:rn.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",rn.Mod(rn.ObjectNode({item:rn.Opt(n({validator:"resource",params:{pool:"item"}})),tag:rn.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",rn.Mod(rn.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:rn.Opt(rn.Mod(rn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.initTagsSchemas=void 0;const on=Ie;nn.initTagsSchemas=function(e,t){const r=on.StringNode.bind(void 0,t),n=e=>on.Mod(on.ObjectNode({replace:on.Opt(on.BooleanNode()),values:on.ListNode(on.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:on.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:on.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initTextComponentSchemas=void 0;const sn=Ie;an.initTextComponentSchemas=function(e,t){const r=sn.Reference.bind(void 0,e),n=sn.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",sn.Mod(sn.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:i},{type:"number",node:sn.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:sn.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:sn.Opt(n()),font:sn.Opt(n()),bold:sn.Opt(sn.BooleanNode()),italic:sn.Opt(sn.BooleanNode()),underlined:sn.Opt(sn.BooleanNode()),strikethrough:sn.Opt(sn.BooleanNode()),obfuscated:sn.Opt(sn.BooleanNode()),insertion:sn.Opt(n()),clickEvent:sn.Opt(sn.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:sn.Opt(sn.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{show_text:{value:sn.Opt(r("text_component")),contents:sn.Opt(r("text_component"))},show_item:{value:sn.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:sn.Opt(sn.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:sn.Opt(sn.NumberNode({integer:!0})),tag:sn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:sn.Opt(sn.ObjectNode({name:sn.Opt(n()),type:sn.Opt(n()),id:sn.Opt(n())})),contents:sn.Opt(sn.Mod(sn.ObjectNode({name:sn.Opt(r("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:sn.Opt(r("text_component_list"))};e.register("text_component_object",sn.Mod(sn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:sn.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:sn.ObjectNode(s({translate:n(),with:sn.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:sn.ObjectNode(s({score:sn.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:sn.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:sn.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:sn.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:sn.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:sn.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:sn.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:sn.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:sn.Opt(sn.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",sn.Mod(sn.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var cn={},ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initBiomeSchemas=void 0;const un=Ie;ln.initBiomeSchemas=function(e,t){const r=un.StringNode.bind(void 0,t);e.register("biome",un.Mod(un.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:un.NumberNode(),scale:un.NumberNode(),temperature:un.NumberNode(),downfall:un.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:un.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:un.Opt(un.BooleanNode()),creature_spawn_probability:un.Opt(un.NumberNode({min:0,max:1})),effects:un.ObjectNode({sky_color:un.NumberNode({color:!0}),fog_color:un.NumberNode({color:!0}),water_color:un.NumberNode({color:!0}),water_fog_color:un.NumberNode({color:!0}),grass_color:un.Opt(un.NumberNode({color:!0})),foliage_color:un.Opt(un.NumberNode({color:!0})),grass_color_modifier:un.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:un.Opt(r()),mood_sound:un.Opt(un.ObjectNode({sound:r(),tick_delay:un.NumberNode({integer:!0}),block_search_extent:un.NumberNode({integer:!0}),offset:un.NumberNode()})),additions_sound:un.Opt(un.ObjectNode({sound:r(),tick_chance:un.NumberNode({min:0,max:1})})),music:un.Opt(un.ObjectNode({sound:r(),min_delay:un.NumberNode({integer:!0,min:0}),max_delay:un.NumberNode({integer:!0,min:0}),replace_current_music:un.BooleanNode()})),particle:un.Opt(un.ObjectNode({options:un.ObjectNode({type:r()}),probability:un.NumberNode({min:0,max:1})}))}),starts:un.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:un.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),un.Mod(un.ListNode(un.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:un.NumberNode({integer:!0}),minCount:un.NumberNode({integer:!0}),maxCount:un.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:un.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),un.Mod(un.ObjectNode({energy_budget:un.NumberNode(),charge:un.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:un.MapNode(r({enum:["air","liquid"]}),un.Mod(un.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:un.ListNode(un.Mod(un.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initCarverSchemas=void 0;const pn=Ie;dn.initCarverSchemas=function(e,t){const r=pn.StringNode.bind(void 0,t);e.register("configured_carver",pn.Mod(pn.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:pn.ObjectNode({probability:pn.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var mn={};Object.defineProperty(mn,"__esModule",{value:!0}),mn.initDecoratorSchemas=void 0;const hn=Ie,fn=Sr;mn.initDecoratorSchemas=function(e,t){const r=hn.Reference.bind(void 0,e),n=hn.StringNode.bind(void 0,t),i={maximum:hn.NumberNode({integer:!0}),bottom_offset:hn.NumberNode({integer:!0}),top_offset:hn.NumberNode({integer:!0})},o={chance:hn.NumberNode({integer:!0,min:0})},a={count:fn.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",hn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:hn.ObjectNode({[hn.Switch]:["pop",{push:"type"}],[hn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:hn.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:hn.NumberNode({integer:!0}),extra_count:hn.NumberNode({integer:!0}),extra_chance:hn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:hn.NumberNode(),below_noise:hn.NumberNode({integer:!0}),above_noise:hn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:hn.NumberNode({integer:!0}),noise_factor:hn.NumberNode(),noise_offset:hn.Opt(hn.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:hn.NumberNode({integer:!0}),spread:hn.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":i,"minecraft:range_biased":i,"minecraft:range_very_biased":i,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var _n={},gn={};Object.defineProperty(gn,"__esModule",{value:!0}),gn.initProcessorListSchemas=void 0;const bn=Ie;gn.initProcessorListSchemas=function(e,t){const r=bn.Reference.bind(void 0,e),n=bn.StringNode.bind(void 0,t);e.register("processor_list",bn.Mod(bn.ObjectNode({processors:bn.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",bn.Mod(bn.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[bn.Switch]:[{push:"processor_type"}],[bn.Case]:{"minecraft:block_age":{mossiness:bn.NumberNode()},"minecraft:block_ignore":{blocks:bn.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:bn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:bn.NumberNode({integer:!0})},"minecraft:rule":{rules:bn.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",bn.Mod(bn.ObjectNode({position_predicate:bn.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:bn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const i={min_dist:bn.NumberNode({min:0,max:255,integer:!0}),max_dist:bn.NumberNode({min:0,max:255,integer:!0}),min_chance:bn.NumberNode({min:0,max:1}),max_chance:bn.NumberNode({min:0,max:1})};e.register("pos_rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:bn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:bn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(_n,"__esModule",{value:!0}),_n.initFeatureSchemas=void 0;const yn=Ie,vn=Sr;_n.initFeatureSchemas=function(e,t){const r=yn.Reference.bind(void 0,e),n=yn.StringNode.bind(void 0,t),i={can_replace:yn.BooleanNode(),project:yn.BooleanNode(),need_water:yn.BooleanNode(),xspread:yn.NumberNode({integer:!0}),yspread:yn.NumberNode({integer:!0}),zspread:yn.NumberNode({integer:!0}),tries:yn.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:yn.ListNode(r("block_state")),blacklist:yn.ListNode(r("block_state"))},o={state:r("block_state"),radius:vn.UniformInt({min:0,max:4,maxSpread:4}),half_height:yn.NumberNode({integer:!0,min:0,max:4}),targets:yn.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:yn.Opt(yn.NumberNode({integer:!0}))},s={state:r("block_state"),size:yn.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:vn.UniformInt({min:-10,max:128,maxSpread:128})},l=yn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",yn.Mod(yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:yn.ObjectNode({[yn.Switch]:["pop",{push:"type"}],[yn.Case]:{"minecraft:bamboo":{probability:yn.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:vn.UniformInt({min:0,max:2,maxSpread:1}),height:vn.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:vn.UniformInt({min:0,max:8,maxSpread:8}),rim_size:vn.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:r("block_state"),target:r("block_state")},"minecraft:end_gateway":{exact:yn.BooleanNode(),exit:yn.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:yn.Opt(yn.BooleanNode()),crystal_beam_target:yn.Opt(r("block_pos")),spikes:yn.ListNode(yn.ObjectNode({centerX:yn.Opt(yn.NumberNode({integer:!0})),centerZ:yn.Opt(yn.NumberNode({integer:!0})),radius:yn.Opt(yn.NumberNode({integer:!0})),height:yn.Opt(yn.NumberNode({integer:!0})),guarded:yn.Opt(yn.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:yn.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:yn.Opt(yn.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:vn.UniformInt()},"minecraft:no_bonemeal_flower":i,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:yn.ListNode(yn.ObjectNode({chance:yn.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:yn.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:yn.ListNode(r("block_state")),place_in:yn.ListNode(r("block_state")),place_under:yn.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:yn.ListNode(l)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:yn.NumberNode({integer:!0}),hole_count:yn.NumberNode({integer:!0}),requires_block_below:yn.BooleanNode(),valid_blocks:yn.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:yn.NumberNode({integer:!0}),ignore_vines:yn.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:r("feature_size"),trunk_provider:r("block_state_provider"),leaves_provider:r("block_state_provider"),trunk_placer:yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:yn.NumberNode({integer:!0,min:0,max:32}),height_rand_a:yn.NumberNode({integer:!0,min:0,max:24}),height_rand_b:yn.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:vn.UniformInt({min:0,max:8,maxSpread:8}),offset:vn.UniformInt({min:0,max:8,maxSpread:8}),[yn.Switch]:[{push:"type"}],[yn.Case]:{"minecraft:blob_foliage_placer":{height:yn.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:yn.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:yn.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:yn.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:vn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:vn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:vn.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:yn.ListNode(yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[yn.Switch]:[{push:"type"}],[yn.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:yn.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:yn.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",yn.Mod(yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:yn.Opt(yn.NumberNode({min:0,max:80})),[yn.Switch]:[{push:"type"}],[yn.Case]:{"minecraft:two_layers_feature_size":{limit:yn.Opt(yn.NumberNode({integer:!0,min:0,max:81})),lower_size:yn.Opt(yn.NumberNode({integer:!0,min:0,max:16})),upper_size:yn.Opt(yn.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:yn.Opt(yn.NumberNode({integer:!0,min:0,max:80})),upper_limit:yn.Opt(yn.NumberNode({integer:!0,min:0,max:80})),lower_size:yn.Opt(yn.NumberNode({integer:!0,min:0,max:16})),middle_size:yn.Opt(yn.NumberNode({integer:!0,min:0,max:16})),upper_size:yn.Opt(yn.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",yn.Mod(yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[yn.Switch]:[{push:"type"}],[yn.Case]:{"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:yn.ListNode(yn.Mod(yn.ObjectNode({weight:yn.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",yn.Mod(yn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[yn.Switch]:[{push:"type"}],[yn.Case]:{"minecraft:column_placer":{min_size:yn.NumberNode({integer:!0}),extra_size:yn.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var xn={};Object.defineProperty(xn,"__esModule",{value:!0}),xn.initNoiseSettingsSchemas=void 0;const Nn=Ie,wn=Sr;xn.initNoiseSettingsSchemas=function(e,t){const r=Nn.Reference.bind(void 0,e),n=Nn.StringNode.bind(void 0,t);e.register("noise_settings",Nn.Mod(Nn.ObjectNode({name:Nn.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Nn.NumberNode({integer:!0}),bedrock_floor_position:Nn.NumberNode({integer:!0}),sea_level:Nn.NumberNode({integer:!0}),disable_mob_generation:Nn.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Nn.ObjectNode({height:Nn.NumberNode({integer:!0}),density_factor:Nn.NumberNode(),density_offset:Nn.NumberNode(),size_horizontal:Nn.NumberNode({integer:!0}),size_vertical:Nn.NumberNode({integer:!0}),simplex_surface_noise:Nn.BooleanNode(),random_density_offset:Nn.Opt(Nn.BooleanNode()),island_noise_override:Nn.Opt(Nn.BooleanNode()),amplified:Nn.Opt(Nn.BooleanNode()),sampling:Nn.ObjectNode({xz_scale:Nn.NumberNode(),y_scale:Nn.NumberNode(),xz_factor:Nn.NumberNode(),y_factor:Nn.NumberNode()}),bottom_slide:Nn.ObjectNode({target:Nn.NumberNode({integer:!0}),size:Nn.NumberNode({integer:!0}),offset:Nn.NumberNode({integer:!0})}),top_slide:Nn.ObjectNode({target:Nn.NumberNode({integer:!0}),size:Nn.NumberNode({integer:!0}),offset:Nn.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>wn.DefaultNoiseSettings})),e.register("generator_structures",Nn.ObjectNode({stronghold:Nn.Opt(Nn.ObjectNode({distance:Nn.NumberNode({integer:!0,min:0,max:1023}),spread:Nn.NumberNode({integer:!0,min:0,max:1023}),count:Nn.NumberNode({integer:!0,min:1,max:4095})})),structures:Nn.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Nn.Mod(Nn.ObjectNode({spacing:Nn.NumberNode({integer:!0,min:0,max:4096}),separation:Nn.Mod(Nn.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,n,i)=>(t.pop().push("spacing").get()<=r&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,r,n,i))}))),salt:Nn.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Nn.Mod(Nn.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:Nn.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var kn={};Object.defineProperty(kn,"__esModule",{value:!0}),kn.initStructureFeatureSchemas=void 0;const On=Ie;kn.initStructureFeatureSchemas=function(e,t){const r=On.StringNode.bind(void 0,t),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:On.NumberNode({integer:!0})};e.register("configured_structure_feature",On.Mod(On.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:On.ObjectNode({[On.Switch]:["pop",{push:"type"}],[On.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:On.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:On.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:On.NumberNode({min:0,max:1}),cluster_probability:On.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:On.Opt(On.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.initSurfaceBuilderSchemas=void 0;const An=Ie;Sn.initSurfaceBuilderSchemas=function(e,t){const r=An.StringNode.bind(void 0,t),n=An.Reference.bind(void 0,e);e.register("configured_surface_builder",An.Mod(An.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:An.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Dn={};Object.defineProperty(Dn,"__esModule",{value:!0}),Dn.initTemplatePoolSchemas=void 0;const Cn=Ie;Dn.initTemplatePoolSchemas=function(e,t){const r=Cn.Reference.bind(void 0,e),n=Cn.StringNode.bind(void 0,t),i=Cn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Cn.Mod(Cn.ObjectNode({name:n(),fallback:n(),elements:Cn.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Cn.Mod(Cn.ObjectNode({weight:Cn.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Cn.Mod(Cn.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Cn.Switch]:[{push:"element_type"}],[Cn.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:i},"minecraft:list_pool_element":{elements:Cn.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:i}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(cn,"__esModule",{value:!0}),cn.initWorldgenSchemas=void 0;const En=ln,Fn=dn,Bn=mn,Mn=_n,jn=xn,Tn=gn,In=kn,Ln=Sn,Pn=Dn;cn.initWorldgenSchemas=function(e,t){En.initBiomeSchemas(e,t),Fn.initCarverSchemas(e,t),Bn.initDecoratorSchemas(e,t),Mn.initFeatureSchemas(e,t),jn.initNoiseSettingsSchemas(e,t),Tn.initProcessorListSchemas(e,t),In.initStructureFeatureSchemas(e,t),Ln.initSurfaceBuilderSchemas(e,t),Pn.initTemplatePoolSchemas(e,t)};var Rn={};Object.defineProperty(Rn,"__esModule",{value:!0}),Rn.initWorldSettingsSchemas=void 0;const zn=Ie;Rn.initWorldSettingsSchemas=function(e,t){const r=zn.Reference.bind(void 0,e),n=zn.StringNode.bind(void 0,t);e.register("world_settings",zn.Mod(zn.ObjectNode({generate_features:zn.BooleanNode(),bonus_chest:zn.BooleanNode(),seed:zn.NumberNode({integer:!0}),dimensions:zn.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(kr,"__esModule",{value:!0}),kr.initSchemas=void 0;const Un=Or,$n=Cr,Xn=Sr,Jn=Ir,qn=Rr,Hn=$r,Wn=qr,Zn=Kr,Gn=Vr,Kn=tn,Yn=nn,Vn=an,Qn=cn,ei=Rn;kr.initSchemas=function(e,t){Xn.initCommonSchemas(e,t),Un.initAdvancementSchemas(e,t),$n.initAssetsSchemas(e,t),Jn.initConditionSchemas(e,t),Hn.initDimensionTypeSchemas(e,t),qn.initDimensionSchemas(e,t),Wn.initLootTableSchemas(e,t),Zn.initPackMcmetaSchemas(e,t),Gn.initPredicatesSchemas(e,t),Kn.initRecipeSchemas(e,t),Yn.initTagsSchemas(e,t),Vn.initTextComponentSchemas(e,t),Qn.initWorldgenSchemas(e,t),ei.initWorldSettingsSchemas(e,t)};var ti=Te&&Te.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),ri=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ni=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&ti(t,e,r);return ri(t,e),t};Object.defineProperty(Nr,"__esModule",{value:!0});var ii=Nr.getSchemas=Nr.getCollections=void 0;const oi=Ie,ai=wr,si=kr;var ci=Nr.lootContext=ni(Hr);var li=Nr.getCollections=function(){const e=new oi.CollectionRegistry;return ai.initCollections(e),e};ii=Nr.getSchemas=function(e){const t=new oi.SchemaRegistry;return si.initSchemas(t,e),t};var ui=Object.freeze(Object.assign(Object.create(null),Nr,{[Symbol.toStringTag]:"Module",get getSchemas(){return ii},get getCollections(){return li},lootContext:ci,default:Nr})),di={},pi={};Object.defineProperty(pi,"__esModule",{value:!0}),pi.initCollections=void 0,pi.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var mi={},hi={};Object.defineProperty(hi,"__esModule",{value:!0}),hi.initAdvancementSchemas=void 0;const fi=Ie;hi.initAdvancementSchemas=function(e,t){const r=fi.Reference.bind(void 0,e),n=fi.StringNode.bind(void 0,t),i=fi.ChoiceNode([{type:"object",node:fi.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:fi.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",fi.Mod(fi.ObjectNode({display:fi.Opt(fi.Mod(fi.ObjectNode({icon:fi.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:fi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:fi.Opt(n()),frame:fi.Opt(n({enum:["task","challenge","goal"]})),show_toast:fi.Opt(fi.BooleanNode()),announce_to_chat:fi.Opt(fi.BooleanNode()),hidden:fi.Opt(fi.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:fi.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:fi.MapNode(n(),r("advancement_criteria")),requirements:fi.Opt(fi.ListNode(fi.ListNode(n()))),rewards:fi.Opt(fi.ObjectNode({function:fi.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:fi.Opt(fi.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:fi.Opt(fi.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:fi.Opt(fi.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",fi.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:fi.Opt(fi.ObjectNode({player:fi.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[fi.Switch]:["pop",{push:"trigger"}],[fi.Case]:{"minecraft:bee_nest_destroyed":{block:fi.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:fi.Opt(fi.NumberNode({integer:!0})),item:fi.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:fi.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:fi.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:fi.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:fi.Opt(fi.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:fi.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:fi.Opt(fi.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),fi.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:fi.Opt(i)},"minecraft:enter_block":{block:fi.Opt(n({validator:"resource",params:{pool:"block"}})),state:fi.Opt(fi.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:fi.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:fi.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:fi.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:fi.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:fi.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:fi.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:fi.Opt(fi.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:fi.Opt(fi.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:fi.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:fi.Opt(r("item_predicate")),location:fi.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:fi.Opt(fi.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:fi.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:fi.Opt(r("location_predicate")),exited:fi.Opt(r("location_predicate"))},"minecraft:placed_block":{block:fi.Opt(n({validator:"resource",params:{pool:"block"}})),state:fi.Opt(fi.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:fi.Opt(r("item_predicate")),location:fi.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:fi.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:fi.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:fi.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:fi.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:fi.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:fi.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:fi.Opt(r("entity_predicate")),item:fi.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:fi.Opt(r("item_predicate"))},"minecraft:using_item":{item:fi.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:fi.Opt(r("entity_predicate")),item:fi.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var _i={},gi={};Object.defineProperty(gi,"__esModule",{value:!0}),gi.initModelSchemas=void 0;const bi=Ie;gi.initModelSchemas=function(e,t){bi.Reference.bind(void 0,e);const r=bi.StringNode.bind(void 0,t),n=(e,t,r)=>bi.ListNode(bi.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=bi.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",bi.Mod(bi.ObjectNode({parent:bi.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:bi.Opt(bi.BooleanNode()),gui_light:bi.Opt(r({enum:"gui_light"})),textures:bi.Opt(bi.MapNode(r(),i)),elements:bi.Opt(bi.ListNode(bi.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:bi.Opt(bi.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:bi.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:bi.Opt(bi.BooleanNode())})),shade:bi.Opt(bi.BooleanNode()),faces:bi.MapNode(r({enum:"direction"}),bi.ObjectNode({texture:i,uv:bi.Opt(n(4)),cullface:bi.Opt(r({enum:"direction"})),rotation:bi.Opt(bi.NumberNode({integer:!0})),tintindex:bi.Opt(bi.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:bi.Opt(bi.MapNode(r({enum:"display_position"}),bi.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:bi.Opt(bi.ListNode(bi.ObjectNode({predicate:bi.MapNode(r({enum:"item_model_predicates"}),bi.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var yi={};Object.defineProperty(yi,"__esModule",{value:!0}),yi.initBlockDefinitionSchemas=void 0;const vi=Ie;yi.initBlockDefinitionSchemas=function(e,t){const r=vi.Reference.bind(void 0,e),n=vi.StringNode.bind(void 0,t);e.register("block_definition",vi.Mod(vi.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:vi.ObjectNode({variants:vi.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:vi.ObjectNode({multipart:vi.ListNode(vi.ObjectNode({when:vi.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const i={model:n({validator:"resource",params:{pool:"$model"}}),x:vi.Opt(vi.NumberEnum({integer:!0,values:[0,90,180,270]})),y:vi.Opt(vi.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:vi.Opt(vi.BooleanNode())};e.register("model_variant",vi.ChoiceNode([{type:"object",node:vi.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:vi.ListNode(vi.ObjectNode(c(s({},i),{weight:vi.Opt(vi.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",vi.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:vi.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:vi.ObjectNode({OR:vi.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(_i,"__esModule",{value:!0}),_i.initAssetsSchemas=void 0;const xi=gi,Ni=yi;_i.initAssetsSchemas=function(e,t){Ni.initBlockDefinitionSchemas(e,t),xi.initModelSchemas(e,t)};var wi={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Ie;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(r,n){const i=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,r);r.register("block_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),r.register("fluid_state",t.Mod(t.ObjectNode({Name:i({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(i(),i()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),r.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));r.register("int_bounds",a(!0)),r.register("float_bounds",a()),r.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,r,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(i({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),p=[{type:r,node:l[o][n]}];return a&&p.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{p.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(p,{context:c,choiceContext:`${c}.type`})};r.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:i({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),r.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:i({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(i({enum:"entity_source"}),{default:()=>"this"})}})),r.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:i({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(i({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),r.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),r.register("int_provider",e.IntProvider()),r.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,n,i;return{[e]:null!==(i=null!==(n=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),r.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=i({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(i({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:i({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=i({enum:"copy_source"}),a=i({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:i({validator:"resource",params:{pool:"enchantment"}}),formula:i({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:i({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:i({validator:"nbt_path",params:{category:"minecraft:item"}}),op:i({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:i({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(i({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(i({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(i({enum:"map_feature"})),decoration:t.Opt(i({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:i({enum:"banner_pattern"}),color:i({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(i({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:i({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:i({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:i({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=r=>t.ObjectOrPreset(i({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),r,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(wi);var ki={};Object.defineProperty(ki,"__esModule",{value:!0}),ki.initConditionSchemas=void 0;const Oi=Ie,Si=wi;ki.initConditionSchemas=function(e,t){const r=Oi.Reference.bind(void 0,e),n=Oi.StringNode.bind(void 0,t);e.register("predicate",Oi.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Oi.Mod(Oi.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Oi.Switch]:[{push:"condition"}],[Oi.Case]:Si.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ai={};Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.initDimensionSchemas=void 0;const Di=Ie,Ci=wi;Ai.initDimensionSchemas=function(e,t){const r=Di.Reference.bind(void 0,e),n=Di.StringNode.bind(void 0,t),i=e=>Di.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Di.Mod(Di.ObjectNode({type:Ci.DimensionTypePresets(r("dimension_type")),generator:Di.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Di.Switch]:[{push:"type"}],[Di.Case]:{"minecraft:noise":{seed:Di.NumberNode({integer:!0}),settings:Ci.NoiseSettingsPresets(r("noise_settings")),biome_source:Di.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Di.Switch]:[{push:"type"}],[Di.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Di.NumberNode({integer:!0}),preset:Di.Opt(n({enum:["nether"]})),altitude_noise:i(r("generator_biome_noise")),temperature_noise:i(r("generator_biome_noise")),humidity_noise:i(r("generator_biome_noise")),weirdness_noise:i(r("generator_biome_noise")),biomes:i(Di.Mod(Di.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Di.Opt(Di.NumberNode({integer:!0,min:0,max:62})),biomes:Di.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Di.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Di.NumberNode({integer:!0}),large_biomes:Di.Opt(Di.BooleanNode()),legacy_biome_init_layer:Di.Opt(Di.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Di.ObjectNode({biome:Di.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Di.Opt(Di.BooleanNode()),features:Di.Opt(Di.BooleanNode()),layers:Di.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Di.Mod(Di.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Di.ObjectNode({altitude:Di.NumberNode(),temperature:Di.NumberNode(),humidity:Di.NumberNode(),weirdness:Di.NumberNode(),offset:Di.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Di.Mod(Di.ObjectNode({firstOctave:Di.NumberNode({integer:!0}),amplitudes:Di.ListNode(Di.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Ei={};Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.initDimensionTypeSchemas=void 0;const Fi=Ie,Bi=wi;Ei.initDimensionTypeSchemas=function(e,t){const r=Fi.StringNode.bind(void 0,t);e.register("dimension_type",Fi.Mod(Fi.ObjectNode({name:Fi.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Fi.BooleanNode(),natural:Fi.BooleanNode(),piglin_safe:Fi.BooleanNode(),respawn_anchor_works:Fi.BooleanNode(),bed_works:Fi.BooleanNode(),has_raids:Fi.BooleanNode(),has_skylight:Fi.BooleanNode(),has_ceiling:Fi.BooleanNode(),coordinate_scale:Fi.NumberNode({min:1e-5,max:3e7}),ambient_light:Fi.NumberNode(),fixed_time:Fi.Opt(Fi.NumberNode({integer:!0})),logical_height:Fi.NumberNode({integer:!0,min:0,max:4096}),effects:Fi.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Fi.NumberNode({integer:!0,min:-2048,max:2047}),height:Fi.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Bi.DefaultDimensionType,validate:(t,r,n,i)=>((null==(r=e.validate(t,r,n,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Mi={};Object.defineProperty(Mi,"__esModule",{value:!0}),Mi.initItemModifierSchemas=void 0;const ji=Ie,Ti=wi;Mi.initItemModifierSchemas=function(e,t){const r=ji.Reference.bind(void 0,e),n=ji.StringNode.bind(void 0,t);e.register("item_modifier",ji.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:ji.Opt(ji.ListNode(r("condition")))};e.register("function",ji.Mod(ji.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[ji.Switch]:[{push:"function"}],[ji.Case]:Ti.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ii={},Li={};Object.defineProperty(Li,"__esModule",{value:!0}),Li.LootFunctions=Li.LootConditions=Li.LootCopySources=Li.LootEntitySources=Li.LootTableTypes=void 0,Li.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Li.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Li.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Li.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Li.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initLootTableSchemas=void 0;const Pi=Ie,Ri=Li,zi=wi;Ii.initLootTableSchemas=function(e,t){const r=Pi.Reference.bind(void 0,e),n=Pi.StringNode.bind(void 0,t),i={conditions:Pi.Opt(Pi.ListNode(r("loot_condition")))},o=s({functions:Pi.Opt(Pi.ListNode(r("loot_function")))},i);function a(e,r,n){const i=[],o=n=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ri.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Pi.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Pi.SwitchNode(i)}const c=a(Ri.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ri.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ri.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Ri.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Pi.Mod(Pi.ObjectNode({type:Pi.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Pi.Opt(Pi.ListNode(Pi.Mod(Pi.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:Pi.Opt(r("number_provider")),entries:Pi.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Pi.Opt(Pi.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Pi.Mod(Pi.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Pi.Opt(Pi.Mod(Pi.NumberNode({integer:!0,min:1}),p)),quality:Pi.Opt(Pi.Mod(Pi.NumberNode({integer:!0}),p)),[Pi.Switch]:[{push:"type"}],[Pi.Case]:{"minecraft:alternatives":s({children:Pi.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Pi.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Pi.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Pi.Opt(Pi.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Pi.Mod(Pi.ObjectNode({function:l,[Pi.Switch]:[{push:"function"}],[Pi.Case]:zi.FunctionCases(i,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Pi.Mod(Pi.ObjectNode({condition:c,[Pi.Switch]:[{push:"condition"}],[Pi.Case]:zi.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Pi.Mod(Pi.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Pi.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ui={};Object.defineProperty(Ui,"__esModule",{value:!0}),Ui.initPackMcmetaSchemas=void 0;const $i=Ie;Ui.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",$i.Mod($i.ObjectNode({pack:$i.Mod($i.ObjectNode({pack_format:$i.Mod($i.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:$i.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Xi={};Object.defineProperty(Xi,"__esModule",{value:!0}),Xi.initPredicatesSchemas=void 0;const Ji=Ie;Xi.initPredicatesSchemas=function(e,t){const r=Ji.Reference.bind(void 0,e),n=Ji.StringNode.bind(void 0,t),i=Ji.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Ji.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Ji.ObjectNode({min:Ji.Opt(Ji.NumberNode({integer:!0})),max:Ji.Opt(Ji.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Ji.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Ji.ObjectNode({items:Ji.Opt(Ji.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Ji.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:Ji.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Ji.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Ji.Opt(Ji.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Ji.ObjectNode({enchantment:Ji.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Ji.ObjectNode({blocks:Ji.Opt(Ji.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Ji.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Ji.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Ji.Opt(Ji.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Ji.ObjectNode({fluid:Ji.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Ji.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Ji.Opt(Ji.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",Ji.ObjectNode({position:Ji.Opt(Ji.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:Ji.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Ji.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Ji.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Ji.Opt(Ji.ObjectNode({light:r("int_bounds")})),smokey:Ji.Opt(Ji.BooleanNode()),block:Ji.Opt(r("block_predicate")),fluid:Ji.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Ji.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[Ji.Switch]:[{push:"type"}],[Ji.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Ji.ObjectNode({gamemode:Ji.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:Ji.Opt(Ji.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Ji.ChoiceNode([{type:"boolean",node:Ji.BooleanNode(),change:e=>!0},{type:"object",node:Ji.MapNode(n(),Ji.BooleanNode())}]))),recipes:Ji.Opt(Ji.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Ji.BooleanNode())),stats:Ji.Opt(Ji.ListNode(r("statistic_predicate"))),looking_at:Ji.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Ji.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:Ji.Opt(Ji.BooleanNode()),visible:Ji.Opt(Ji.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Ji.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",Ji.ObjectNode({type:Ji.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Ji.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Ji.Opt(n({validator:"team"})),location:Ji.Opt(r("location_predicate")),stepping_on:Ji.Opt(r("location_predicate")),distance:Ji.Opt(r("distance_predicate")),flags:Ji.Opt(Ji.ObjectNode({is_on_fire:Ji.Opt(Ji.BooleanNode()),is_sneaking:Ji.Opt(Ji.BooleanNode()),is_sprinting:Ji.Opt(Ji.BooleanNode()),is_swimming:Ji.Opt(Ji.BooleanNode()),is_baby:Ji.Opt(Ji.BooleanNode())})),equipment:Ji.Opt(Ji.MapNode(n({enum:"slot"}),r("item_predicate"))),player:Ji.Opt(r("player_predicate")),vehicle:Ji.Opt(r("entity_predicate")),passenger:Ji.Opt(r("entity_predicate")),targeted_entity:Ji.Opt(r("entity_predicate")),lightning_bolt:Ji.Opt(Ji.ObjectNode({blocks_set_on_fire:Ji.Opt(r("int_bounds")),entity_struck:Ji.Opt(r("entity_predicate"))})),fishing_hook:Ji.Opt(Ji.ObjectNode({in_open_water:Ji.Opt(Ji.BooleanNode())})),effects:Ji.Opt(Ji.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Ji.ObjectNode({is_explosion:Ji.Opt(Ji.BooleanNode()),is_fire:Ji.Opt(Ji.BooleanNode()),is_magic:Ji.Opt(Ji.BooleanNode()),is_projectile:Ji.Opt(Ji.BooleanNode()),is_lightning:Ji.Opt(Ji.BooleanNode()),bypasses_armor:Ji.Opt(Ji.BooleanNode()),bypasses_invulnerability:Ji.Opt(Ji.BooleanNode()),bypasses_magic:Ji.Opt(Ji.BooleanNode()),source_entity:Ji.Opt(r("entity_predicate")),direct_entity:Ji.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Ji.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:Ji.Opt(Ji.BooleanNode()),source_entity:Ji.Opt(r("entity_predicate")),type:Ji.Opt(r("damage_source_predicate"))},{context:"damage"}))};var qi={};Object.defineProperty(qi,"__esModule",{value:!0}),qi.initRecipeSchemas=void 0;const Hi=Ie;qi.initRecipeSchemas=function(e,t){const r=Hi.Reference.bind(void 0,e),n=Hi.StringNode.bind(void 0,t);e.register("recipe",Hi.Mod(Hi.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Hi.Switch]:[{push:"type"}],[Hi.Case]:{"minecraft:crafting_shaped":{group:Hi.Opt(n({enum:"recipe_group",additional:!0})),pattern:Hi.ListNode(n()),key:Hi.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Hi.Opt(n()),ingredients:Hi.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Hi.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Hi.Opt(Hi.NumberNode()),cookingtime:Hi.Opt(Hi.Mod(Hi.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Hi.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Hi.Opt(Hi.NumberNode()),cookingtime:Hi.Opt(Hi.Mod(Hi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Hi.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Hi.Opt(Hi.NumberNode()),cookingtime:Hi.Opt(Hi.Mod(Hi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Hi.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Hi.Opt(Hi.NumberNode()),cookingtime:Hi.Opt(Hi.Mod(Hi.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Hi.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Hi.NumberNode({integer:!0})},"minecraft:smithing":{group:Hi.Opt(n()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Hi.Mod(Hi.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Hi.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Hi.Mod(Hi.ObjectNode({item:Hi.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Hi.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Hi.Mod(Hi.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Hi.Opt(Hi.Mod(Hi.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0}),Wi.initTagsSchemas=void 0;const Zi=Ie;Wi.initTagsSchemas=function(e,t){const r=Zi.StringNode.bind(void 0,t),n=e=>Zi.Mod(Zi.ObjectNode({replace:Zi.Opt(Zi.BooleanNode()),values:Zi.ListNode(Zi.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Zi.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Zi.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Gi={};Object.defineProperty(Gi,"__esModule",{value:!0}),Gi.initTextComponentSchemas=void 0;const Ki=Ie;Gi.initTextComponentSchemas=function(e,t){const r=Ki.Reference.bind(void 0,e),n=Ki.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Ki.Mod(Ki.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:i},{type:"number",node:Ki.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Ki.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Ki.Opt(n()),font:Ki.Opt(n()),bold:Ki.Opt(Ki.BooleanNode()),italic:Ki.Opt(Ki.BooleanNode()),underlined:Ki.Opt(Ki.BooleanNode()),strikethrough:Ki.Opt(Ki.BooleanNode()),obfuscated:Ki.Opt(Ki.BooleanNode()),insertion:Ki.Opt(n()),clickEvent:Ki.Opt(Ki.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ki.Switch]:[{push:"action"}],[Ki.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Ki.Opt(Ki.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Ki.Switch]:[{push:"action"}],[Ki.Case]:{show_text:{value:Ki.Opt(r("text_component")),contents:Ki.Opt(r("text_component"))},show_item:{value:Ki.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Ki.Opt(Ki.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Ki.Opt(Ki.NumberNode({integer:!0})),tag:Ki.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Ki.Opt(Ki.ObjectNode({name:Ki.Opt(n()),type:Ki.Opt(n()),id:Ki.Opt(n())})),contents:Ki.Opt(Ki.Mod(Ki.ObjectNode({name:Ki.Opt(r("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Ki.Opt(r("text_component_list"))};e.register("text_component_object",Ki.Mod(Ki.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Ki.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Ki.ObjectNode(s({translate:n(),with:Ki.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Ki.ObjectNode(s({score:Ki.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Ki.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Ki.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Ki.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Ki.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Ki.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Ki.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Ki.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Ki.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Ki.Opt(Ki.BooleanNode()),separator:Ki.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Ki.Mod(Ki.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Yi={},Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.initBiomeSchemas=void 0;const Qi=Ie;Vi.initBiomeSchemas=function(e,t){const r=Qi.StringNode.bind(void 0,t);e.register("biome",Qi.Mod(Qi.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Qi.NumberNode(),scale:Qi.NumberNode(),temperature:Qi.NumberNode(),downfall:Qi.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Qi.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Qi.Opt(Qi.BooleanNode()),creature_spawn_probability:Qi.Opt(Qi.NumberNode({min:0,max:1})),effects:Qi.ObjectNode({sky_color:Qi.NumberNode({color:!0}),fog_color:Qi.NumberNode({color:!0}),water_color:Qi.NumberNode({color:!0}),water_fog_color:Qi.NumberNode({color:!0}),grass_color:Qi.Opt(Qi.NumberNode({color:!0})),foliage_color:Qi.Opt(Qi.NumberNode({color:!0})),grass_color_modifier:Qi.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Qi.Opt(r()),mood_sound:Qi.Opt(Qi.ObjectNode({sound:r(),tick_delay:Qi.NumberNode({integer:!0}),block_search_extent:Qi.NumberNode({integer:!0}),offset:Qi.NumberNode()})),additions_sound:Qi.Opt(Qi.ObjectNode({sound:r(),tick_chance:Qi.NumberNode({min:0,max:1})})),music:Qi.Opt(Qi.ObjectNode({sound:r(),min_delay:Qi.NumberNode({integer:!0,min:0}),max_delay:Qi.NumberNode({integer:!0,min:0}),replace_current_music:Qi.BooleanNode()})),particle:Qi.Opt(Qi.ObjectNode({options:Qi.ObjectNode({type:r()}),probability:Qi.NumberNode({min:0,max:1})}))}),starts:Qi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Qi.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Qi.Mod(Qi.ListNode(Qi.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Qi.NumberNode({integer:!0}),minCount:Qi.NumberNode({integer:!0}),maxCount:Qi.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Qi.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Qi.Mod(Qi.ObjectNode({energy_budget:Qi.NumberNode(),charge:Qi.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Qi.MapNode(r({enum:["air","liquid"]}),Qi.Mod(Qi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Qi.ListNode(Qi.Mod(Qi.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initCarverSchemas=void 0;const to=Ie,ro=wi;eo.initCarverSchemas=function(e,t){const r=to.Reference.bind(void 0,e),n=to.StringNode.bind(void 0,t),i={vertical_rotation:ro.FloatProvider(),shape:to.ObjectNode({distance_factor:ro.FloatProvider(),thickness:ro.FloatProvider(),width_smoothness:to.NumberNode({integer:!0,min:0}),horizontal_radius_factor:ro.FloatProvider(),vertical_radius_default_factor:to.NumberNode(),vertical_radius_center_factor:to.NumberNode()})},o={horizontal_radius_multiplier:ro.FloatProvider(),vertical_radius_multiplier:ro.FloatProvider(),floor_level:ro.FloatProvider({min:-1,max:1})};e.register("configured_carver",to.Mod(to.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:to.ObjectNode({probability:to.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:ro.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:to.BooleanNode(),debug_settings:to.Opt(to.ObjectNode({debug_mode:to.Opt(to.BooleanNode()),air_state:to.Opt(r("block_state")),water_state:to.Opt(r("block_state")),lava_state:to.Opt(r("block_state")),barrier_state:to.Opt(r("block_state"))})),[to.Switch]:["pop",{push:"type"}],[to.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var no={};Object.defineProperty(no,"__esModule",{value:!0}),no.initDecoratorSchemas=void 0;const io=Ie,oo=wi;no.initDecoratorSchemas=function(e,t){const r=io.Reference.bind(void 0,e),n=io.StringNode.bind(void 0,t),i={count:oo.IntProvider({min:0,max:256})};e.register("configured_decorator",io.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:io.ObjectNode({[io.Switch]:["pop",{push:"type"}],[io.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:io.NumberNode({integer:!0})},"minecraft:chance":{chance:io.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:io.NumberNode({integer:!0,min:0}),extra_count:io.NumberNode({integer:!0,min:0}),extra_chance:io.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:io.NumberNode(),below_noise:io.NumberNode({integer:!0}),above_noise:io.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:io.NumberNode({integer:!0}),noise_factor:io.NumberNode(),noise_offset:io.Opt(io.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:io.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:io.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ao={},so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initProcessorListSchemas=so.Processors=void 0;const co=Ie;so.initProcessorListSchemas=function(e,t){const r=co.Reference.bind(void 0,e),n=co.StringNode.bind(void 0,t);so.Processors=co.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",co.Mod(co.ObjectNode({processors:co.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",co.Mod(co.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[co.Switch]:[{push:"processor_type"}],[co.Case]:{"minecraft:block_age":{mossiness:co.NumberNode()},"minecraft:block_ignore":{blocks:co.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:co.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:co.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:co.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",co.Mod(co.ObjectNode({position_predicate:co.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:co.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const i={min_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),max_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),min_chance:co.Opt(co.NumberNode({min:0,max:1})),max_chance:co.Opt(co.NumberNode({min:0,max:1}))};e.register("pos_rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:co.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:co.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ao,"__esModule",{value:!0}),ao.initFeatureSchemas=void 0;const lo=Ie,uo=wi,po=so;ao.initFeatureSchemas=function(e,t){const r=lo.Reference.bind(void 0,e),n=lo.StringNode.bind(void 0,t),i={can_replace:lo.Opt(lo.BooleanNode()),project:lo.Opt(lo.BooleanNode()),need_water:lo.Opt(lo.BooleanNode()),xspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),yspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),zspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),tries:lo.Opt(lo.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:lo.ListNode(r("block_state")),blacklist:lo.ListNode(r("block_state"))},o={state:r("block_state"),radius:uo.IntProvider({min:0,max:8}),half_height:lo.NumberNode({integer:!0,min:0,max:4}),targets:lo.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:lo.Opt(lo.NumberNode({integer:!0}))},s=lo.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:lo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:lo.NumberNode({min:0,max:1}),targets:lo.ListNode(s)},l=lo.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),u={surface:n({enum:["floor","ceiling"]}),depth:uo.IntProvider({min:1,max:128}),vertical_range:lo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:lo.NumberNode({min:0,max:1}),extra_edge_column_chance:lo.NumberNode({min:0,max:1}),vegetation_chance:lo.NumberNode({min:0,max:1}),xz_radius:uo.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:bamboo":{probability:lo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:uo.IntProvider({min:0,max:3}),height:uo.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:uo.IntProvider({min:0,max:16}),rim_size:uo.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:lo.NumberNode({integer:!0,min:1,max:512}),height:uo.IntProvider({min:0,max:128}),radius:uo.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:lo.NumberNode({integer:!0,min:0,max:64}),height_deviation:lo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:uo.IntProvider({min:0,max:128}),density:uo.FloatProvider({min:0,max:2}),wetness:uo.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:lo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:lo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:lo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:lo.BooleanNode(),exit:lo.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:lo.Opt(lo.BooleanNode()),crystal_beam_target:lo.Opt(r("block_pos")),spikes:lo.ListNode(lo.ObjectNode({centerX:lo.Opt(lo.NumberNode({integer:!0})),centerZ:lo.Opt(lo.NumberNode({integer:!0})),radius:lo.Opt(lo.NumberNode({integer:!0})),height:lo.Opt(lo.NumberNode({integer:!0})),guarded:lo.Opt(lo.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:lo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:lo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:po.Processors,overlay_processors:po.Processors},"minecraft:geode":{blocks:lo.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:lo.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:lo.ObjectNode({filling:lo.Opt(lo.NumberNode({min:.01,max:50})),inner_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),middle_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),outer_layer:lo.Opt(lo.NumberNode({min:.01,max:50}))}),crack:lo.ObjectNode({generate_crack_chance:lo.Opt(lo.NumberNode({min:0,max:1})),base_crack_size:lo.Opt(lo.NumberNode({min:0,max:5})),crack_point_offset:lo.Opt(lo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:lo.Opt(lo.NumberNode({min:0,max:1})),use_potential_placements_chance:lo.Opt(lo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:lo.Opt(lo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:lo.Opt(lo.BooleanNode()),outer_wall_distance:lo.Opt(uo.IntProvider({min:1,max:20})),distribution_points:lo.Opt(uo.IntProvider({min:1,max:20})),point_offset:lo.Opt(uo.IntProvider({min:0,max:10})),min_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),max_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),invalid_blocks_threshold:lo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:lo.Opt(lo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:lo.Opt(lo.NumberNode({min:0,max:1})),can_place_on_floor:lo.Opt(lo.BooleanNode()),can_place_on_ceiling:lo.Opt(lo.BooleanNode()),can_place_on_wall:lo.Opt(lo.BooleanNode()),can_be_placed_on:lo.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:lo.BooleanNode(),height_distribution:lo.ListNode(lo.ObjectNode({weight:lo.NumberNode({integer:!0}),data:uo.IntProvider()})),body_provider:r("block_state_provider"),head_provider:r("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:lo.Opt(lo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:lo.Opt(lo.NumberNode({integer:!0,min:1,max:512})),column_radius:uo.IntProvider({min:0,max:60}),height_scale:uo.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:lo.NumberNode({min:0,max:1}),stalactite_bluntness:uo.FloatProvider({min:.1,max:10}),stalagmite_bluntness:uo.FloatProvider({min:.1,max:10}),wind_speed:uo.FloatProvider({min:0,max:2}),min_radius_for_wind:lo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:lo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:uo.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":i,"minecraft:ore":c,"minecraft:random_patch":i,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:lo.ListNode(lo.ObjectNode({chance:lo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:lo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_radius:lo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:lo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:lo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:lo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:lo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:uo.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:lo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:lo.Opt(lo.ListNode(r("block_state"))),place_in:lo.Opt(lo.ListNode(r("block_state"))),place_under:lo.Opt(lo.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:lo.ListNode(l)},"minecraft:small_dripstone":{max_placements:lo.Opt(lo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:lo.Opt(lo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:lo.NumberNode({integer:!0}),hole_count:lo.NumberNode({integer:!0}),requires_block_below:lo.BooleanNode(),valid_blocks:lo.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:lo.Opt(lo.BooleanNode()),force_dirt:lo.Opt(lo.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),sapling_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:lo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:lo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:lo.NumberNode({integer:!0,min:0,max:24}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:bending_trunk_placer":{bend_length:uo.IntProvider({min:1,max:64}),min_height_for_leaves:lo.Opt(lo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:uo.IntProvider({min:0,max:16}),offset:uo.IntProvider({min:0,max:16}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:blob_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:uo.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:uo.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:uo.IntProvider({min:1,max:512}),leaf_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:uo.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:lo.ListNode(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:lo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:lo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:lo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:lo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:lo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:lo.Opt(lo.NumberNode({min:0,max:80})),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:two_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:81})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),upper_limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),middle_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:uo.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:lo.ListNode(lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:column_placer":{size:uo.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var mo={};Object.defineProperty(mo,"__esModule",{value:!0}),mo.initNoiseSettingsSchemas=void 0;const ho=Ie,fo=wi;mo.initNoiseSettingsSchemas=function(e,t){const r=ho.Reference.bind(void 0,e),n=ho.StringNode.bind(void 0,t);e.register("noise_settings",ho.Mod(ho.ObjectNode({name:ho.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:ho.NumberNode({integer:!0}),bedrock_floor_position:ho.NumberNode({integer:!0}),sea_level:ho.NumberNode({integer:!0}),min_surface_level:ho.NumberNode({integer:!0}),disable_mob_generation:ho.BooleanNode(),noise_caves_enabled:ho.BooleanNode(),noodle_caves_enabled:ho.BooleanNode(),aquifers_enabled:ho.BooleanNode(),deepslate_enabled:ho.BooleanNode(),ore_veins_enabled:ho.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:ho.ObjectNode({min_y:ho.NumberNode({integer:!0,min:-2048,max:2047}),height:ho.NumberNode({integer:!0,min:0,max:4096}),density_factor:ho.NumberNode(),density_offset:ho.NumberNode(),size_horizontal:ho.NumberNode({integer:!0}),size_vertical:ho.NumberNode({integer:!0}),simplex_surface_noise:ho.BooleanNode(),random_density_offset:ho.Opt(ho.BooleanNode()),island_noise_override:ho.Opt(ho.BooleanNode()),amplified:ho.Opt(ho.BooleanNode()),sampling:ho.ObjectNode({xz_scale:ho.NumberNode(),y_scale:ho.NumberNode(),xz_factor:ho.NumberNode(),y_factor:ho.NumberNode()}),bottom_slide:ho.ObjectNode({target:ho.NumberNode({integer:!0}),size:ho.NumberNode({integer:!0,min:0}),offset:ho.NumberNode({integer:!0})}),top_slide:ho.ObjectNode({target:ho.NumberNode({integer:!0}),size:ho.NumberNode({integer:!0,min:0}),offset:ho.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>fo.DefaultNoiseSettings,validate:(t,r,n,i)=>{var o,a,s,c;return(null===(o=null==(r=e.validate(t,r,n,i))?void 0:r.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==r?void 0:r.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("generator_structures",ho.ObjectNode({stronghold:ho.Opt(ho.ObjectNode({distance:ho.NumberNode({integer:!0,min:0,max:1023}),spread:ho.NumberNode({integer:!0,min:0,max:1023}),count:ho.NumberNode({integer:!0,min:1,max:4095})})),structures:ho.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ho.Mod(ho.ObjectNode({spacing:ho.NumberNode({integer:!0,min:0,max:4096}),separation:ho.Mod(ho.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,n,i)=>(t.pop().push("spacing").get()<=r&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,r,n,i))}))),salt:ho.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ho.Mod(ho.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ho.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var _o={};Object.defineProperty(_o,"__esModule",{value:!0}),_o.initStructureFeatureSchemas=void 0;const go=Ie;_o.initStructureFeatureSchemas=function(e,t){const r=go.StringNode.bind(void 0,t),n=go.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:go.NumberNode({integer:!0})};e.register("configured_structure_feature",go.Mod(go.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:go.ObjectNode({[go.Switch]:["pop",{push:"type"}],[go.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:go.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:go.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:go.NumberNode({min:0,max:1}),cluster_probability:go.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:go.Opt(go.BooleanNode())},"minecraft:village":i}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initSurfaceBuilderSchemas=void 0;const yo=Ie;bo.initSurfaceBuilderSchemas=function(e,t){const r=yo.StringNode.bind(void 0,t),n=yo.Reference.bind(void 0,e);e.register("configured_surface_builder",yo.Mod(yo.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:yo.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var vo={};Object.defineProperty(vo,"__esModule",{value:!0}),vo.initTemplatePoolSchemas=void 0;const xo=Ie,No=so;vo.initTemplatePoolSchemas=function(e,t){const r=xo.Reference.bind(void 0,e),n=xo.StringNode.bind(void 0,t);e.register("template_pool",xo.Mod(xo.ObjectNode({name:n(),fallback:n(),elements:xo.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",xo.Mod(xo.ObjectNode({weight:xo.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",xo.Mod(xo.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[xo.Switch]:[{push:"element_type"}],[xo.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:No.Processors},"minecraft:list_pool_element":{elements:xo.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:No.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Yi,"__esModule",{value:!0}),Yi.initWorldgenSchemas=void 0;const wo=Vi,ko=eo,Oo=no,So=ao,Ao=mo,Do=so,Co=_o,Eo=bo,Fo=vo;Yi.initWorldgenSchemas=function(e,t){Do.initProcessorListSchemas(e,t),wo.initBiomeSchemas(e,t),ko.initCarverSchemas(e,t),Oo.initDecoratorSchemas(e,t),So.initFeatureSchemas(e,t),Ao.initNoiseSettingsSchemas(e,t),Co.initStructureFeatureSchemas(e,t),Eo.initSurfaceBuilderSchemas(e,t),Fo.initTemplatePoolSchemas(e,t)};var Bo={};Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.initWorldSettingsSchemas=void 0;const Mo=Ie;Bo.initWorldSettingsSchemas=function(e,t){const r=Mo.Reference.bind(void 0,e),n=Mo.StringNode.bind(void 0,t);e.register("world_settings",Mo.Mod(Mo.ObjectNode({generate_features:Mo.BooleanNode(),bonus_chest:Mo.BooleanNode(),seed:Mo.NumberNode({integer:!0}),dimensions:Mo.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(mi,"__esModule",{value:!0}),mi.initSchemas=void 0;const jo=hi,To=_i,Io=wi,Lo=ki,Po=Ai,Ro=Ei,zo=Mi,Uo=Ii,$o=Ui,Xo=Xi,Jo=qi,qo=Wi,Ho=Gi,Wo=Yi,Zo=Bo;mi.initSchemas=function(e,t){Io.initCommonSchemas(e,t),jo.initAdvancementSchemas(e,t),To.initAssetsSchemas(e,t),Lo.initConditionSchemas(e,t),Ro.initDimensionTypeSchemas(e,t),Po.initDimensionSchemas(e,t),zo.initItemModifierSchemas(e,t),Uo.initLootTableSchemas(e,t),$o.initPackMcmetaSchemas(e,t),Xo.initPredicatesSchemas(e,t),Jo.initRecipeSchemas(e,t),qo.initTagsSchemas(e,t),Ho.initTextComponentSchemas(e,t),Wo.initWorldgenSchemas(e,t),Zo.initWorldSettingsSchemas(e,t)};var Go=Te&&Te.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),Ko=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Yo=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&Go(t,e,r);return Ko(t,e),t};Object.defineProperty(di,"__esModule",{value:!0});var Vo=di.getSchemas=di.getCollections=void 0;const Qo=Ie,ea=pi,ta=mi;var ra=di.lootContext=Yo(Li);var na=di.getCollections=function(){const e=new Qo.CollectionRegistry;return ea.initCollections(e),e};Vo=di.getSchemas=function(e){const t=new Qo.SchemaRegistry;return ta.initSchemas(t,e),t};var ia=Object.freeze(Object.assign(Object.create(null),di,{[Symbol.toStringTag]:"Module",get getSchemas(){return Vo},get getCollections(){return na},lootContext:ra,default:di})),oa={},aa={};Object.defineProperty(aa,"__esModule",{value:!0}),aa.initCollections=void 0,aa.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var sa={},ca={};Object.defineProperty(ca,"__esModule",{value:!0}),ca.initAdvancementSchemas=void 0;const la=Ie;ca.initAdvancementSchemas=function(e,t){const r=la.Reference.bind(void 0,e),n=la.StringNode.bind(void 0,t),i=la.ChoiceNode([{type:"object",node:la.Opt(r("entity_predicate")),change:e=>{var t,r;return null!==(r=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==r?r:{}}},{type:"list",node:la.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",la.Mod(la.ObjectNode({display:la.Opt(la.Mod(la.ObjectNode({icon:la.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:la.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:la.Opt(n()),frame:la.Opt(n({enum:["task","challenge","goal"]})),show_toast:la.Opt(la.BooleanNode()),announce_to_chat:la.Opt(la.BooleanNode()),hidden:la.Opt(la.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:la.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:la.MapNode(n(),r("advancement_criteria")),requirements:la.Opt(la.ListNode(la.ListNode(n()))),rewards:la.Opt(la.ObjectNode({function:la.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:la.Opt(la.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",la.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:la.Opt(la.ObjectNode({player:la.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[la.Switch]:["pop",{push:"trigger"}],[la.Case]:{"minecraft:bee_nest_destroyed":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:la.Opt(la.NumberNode({integer:!0})),item:la.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:la.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:la.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:la.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:la.Opt(la.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:la.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:la.Opt(la.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),la.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:la.Opt(i)},"minecraft:enter_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:la.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:la.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:la.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:la.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:la.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:la.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:la.Opt(la.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:la.Opt(la.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:la.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:la.Opt(r("item_predicate")),location:la.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:la.Opt(la.ListNode(i))},"minecraft:levitation":{distance:la.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:la.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:la.Opt(r("item_predicate")),location:la.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:la.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:la.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:la.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:la.Opt(r("location_predicate")),distance:la.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:la.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:la.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:r("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:la.Opt(r("entity_predicate")),item:la.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:la.Opt(r("float_bounds"))},"minecraft:used_totem":{item:la.Opt(r("item_predicate"))},"minecraft:using_item":{item:la.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:la.Opt(r("entity_predicate")),item:la.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:la.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var ua={},da={};Object.defineProperty(da,"__esModule",{value:!0}),da.initModelSchemas=void 0;const pa=Ie;da.initModelSchemas=function(e,t){pa.Reference.bind(void 0,e);const r=pa.StringNode.bind(void 0,t),n=(e,t,r)=>pa.ListNode(pa.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=pa.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:r(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:r({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",pa.Mod(pa.ObjectNode({parent:pa.Opt(r({validator:"resource",params:{pool:"$model"}})),ambientocclusion:pa.Opt(pa.BooleanNode()),gui_light:pa.Opt(r({enum:"gui_light"})),textures:pa.Opt(pa.MapNode(r(),i)),elements:pa.Opt(pa.ListNode(pa.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:pa.Opt(pa.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:pa.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:pa.Opt(pa.BooleanNode())})),shade:pa.Opt(pa.BooleanNode()),faces:pa.MapNode(r({enum:"direction"}),pa.ObjectNode({texture:i,uv:pa.Opt(n(4)),cullface:pa.Opt(r({enum:"direction"})),rotation:pa.Opt(pa.NumberNode({integer:!0})),tintindex:pa.Opt(pa.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:pa.Opt(pa.MapNode(r({enum:"display_position"}),pa.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:pa.Opt(pa.ListNode(pa.ObjectNode({predicate:pa.MapNode(r({enum:"item_model_predicates"}),pa.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ma={};Object.defineProperty(ma,"__esModule",{value:!0}),ma.initBlockDefinitionSchemas=void 0;const ha=Ie;ma.initBlockDefinitionSchemas=function(e,t){const r=ha.Reference.bind(void 0,e),n=ha.StringNode.bind(void 0,t);e.register("block_definition",ha.Mod(ha.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:ha.ObjectNode({variants:ha.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:ha.ObjectNode({multipart:ha.ListNode(ha.ObjectNode({when:ha.Opt(r("multipart_condition")),apply:r("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const i={model:n({validator:"resource",params:{pool:"$model"}}),x:ha.Opt(ha.NumberEnum({integer:!0,values:[0,90,180,270]})),y:ha.Opt(ha.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:ha.Opt(ha.BooleanNode())};e.register("model_variant",ha.ChoiceNode([{type:"object",node:ha.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:ha.ListNode(ha.ObjectNode(c(s({},i),{weight:ha.Opt(ha.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",ha.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:ha.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:ha.ObjectNode({OR:ha.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(ua,"__esModule",{value:!0}),ua.initAssetsSchemas=void 0;const fa=da,_a=ma;ua.initAssetsSchemas=function(e,t){_a.initBlockDefinitionSchemas(e,t),fa.initModelSchemas(e,t)};var ga={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Ie;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const r={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},e.initCommonSchemas=function(n,i){const o=t.StringNode.bind(void 0,i),a=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,r;return void 0===e?0:null!==(r=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==r?r:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",c(!0)),n.register("float_bounds",c()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,r,n,i,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),p=[{type:r,node:l[i][n]}];return a&&p.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{p.push({type:e,match:t=>{var r;if("minecraft:"+(null===(r=null==t?void 0:t.type)||void 0===r?void 0:r.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(p,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var r,n,i;return{[e]:null!==(i=null!==(n=null!==(r=t.absolute)&&void 0!==r?r:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==i?i:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),n.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,r=o({enum:"copy_source"}),n=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:r},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(n),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(n),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return i.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=r=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),r,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:r}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:r}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:r}}})}}(ga);var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initConditionSchemas=void 0;const ya=Ie,va=ga;ba.initConditionSchemas=function(e,t){const r=ya.Reference.bind(void 0,e),n=ya.StringNode.bind(void 0,t);e.register("predicate",ya.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",ya.Mod(ya.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[ya.Switch]:[{push:"condition"}],[ya.Case]:va.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var xa={};Object.defineProperty(xa,"__esModule",{value:!0}),xa.initDimensionSchemas=void 0;const Na=Ie,wa=ga;xa.initDimensionSchemas=function(e,t){const r=Na.Reference.bind(void 0,e),n=Na.StringNode.bind(void 0,t);e.register("dimension",Na.Mod(Na.ObjectNode({type:wa.DimensionTypePresets(r("dimension_type")),generator:Na.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Na.Switch]:[{push:"type"}],[Na.Case]:{"minecraft:noise":{seed:Na.NumberNode({integer:!0}),settings:wa.NoiseSettingsPresets(r("noise_settings")),biome_source:Na.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Na.Switch]:[{push:"type"}],[Na.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Na.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Na.Mod(Na.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Na.Opt(Na.NumberNode({integer:!0,min:0,max:62})),biomes:Na.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Na.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Na.ObjectNode({biome:Na.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Na.Opt(Na.BooleanNode()),features:Na.Opt(Na.BooleanNode()),layers:Na.ListNode(r("generator_layer")),structures:r("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const i=Na.ChoiceNode([{type:"number",node:Na.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Na.ListNode(Na.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Na.Mod(Na.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Na.ObjectNode({temperature:i,humidity:i,continentalness:i,erosion:i,weirdness:i,depth:i,offset:Na.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var ka={};Object.defineProperty(ka,"__esModule",{value:!0}),ka.initDimensionTypeSchemas=void 0;const Oa=Ie,Sa=ga;ka.initDimensionTypeSchemas=function(e,t){const r=Oa.StringNode.bind(void 0,t);e.register("dimension_type",Oa.Mod(Oa.ObjectNode({ultrawarm:Oa.BooleanNode(),natural:Oa.BooleanNode(),piglin_safe:Oa.BooleanNode(),respawn_anchor_works:Oa.BooleanNode(),bed_works:Oa.BooleanNode(),has_raids:Oa.BooleanNode(),has_skylight:Oa.BooleanNode(),has_ceiling:Oa.BooleanNode(),coordinate_scale:Oa.NumberNode({min:1e-5,max:3e7}),ambient_light:Oa.NumberNode(),fixed_time:Oa.Opt(Oa.NumberNode({integer:!0})),logical_height:Oa.NumberNode({integer:!0,min:0,max:4096}),effects:Oa.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Oa.NumberNode({integer:!0,min:-2048,max:2047}),height:Oa.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Sa.DefaultDimensionType,validate:(t,r,n,i)=>((null==(r=e.validate(t,r,n,i))?void 0:r.min_y)+(null==r?void 0:r.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==r?void 0:r.logical_height)>(null==r?void 0:r.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==r?void 0:r.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==r?void 0:r.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),r)}))))};var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initItemModifierSchemas=void 0;const Da=Ie,Ca=ga;Aa.initItemModifierSchemas=function(e,t){const r=Da.Reference.bind(void 0,e),n=Da.StringNode.bind(void 0,t);e.register("item_modifier",Da.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:Da.Opt(Da.ListNode(r("condition")))};e.register("function",Da.Mod(Da.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Da.Switch]:[{push:"function"}],[Da.Case]:Ca.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ea={},Fa={};Object.defineProperty(Fa,"__esModule",{value:!0}),Fa.LootFunctions=Fa.LootConditions=Fa.LootCopySources=Fa.LootEntitySources=Fa.LootTableTypes=void 0,Fa.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Fa.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Fa.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Fa.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Fa.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initLootTableSchemas=void 0;const Ba=Ie,Ma=Fa,ja=ga;Ea.initLootTableSchemas=function(e,t){const r=Ba.Reference.bind(void 0,e),n=Ba.StringNode.bind(void 0,t),i={conditions:Ba.Opt(Ba.ListNode(r("loot_condition")))},o=s({functions:Ba.Opt(Ba.ListNode(r("loot_function")))},i);function a(e,r,n){const i=[],o=n=>t.get(r).filter((t=>{var r;return(null!==(r=e.get(t))&&void 0!==r?r:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ma.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Ba.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Ba.SwitchNode(i)}const c=a(Ma.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ma.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ma.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Ma.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Ba.Mod(Ba.ObjectNode({type:Ba.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ba.Opt(Ba.ListNode(Ba.Mod(Ba.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:Ba.Opt(r("number_provider")),entries:Ba.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ba.Opt(Ba.ListNode(r("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Ba.Mod(Ba.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0,min:1}),p)),quality:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0}),p)),[Ba.Switch]:[{push:"type"}],[Ba.Case]:{"minecraft:alternatives":s({children:Ba.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Ba.ListNode(r("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Ba.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Ba.Opt(Ba.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ba.Mod(Ba.ObjectNode({function:l,[Ba.Switch]:[{push:"function"}],[Ba.Case]:ja.FunctionCases(i,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ba.Mod(Ba.ObjectNode({condition:c,[Ba.Switch]:[{push:"condition"}],[Ba.Case]:ja.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ba.Mod(Ba.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Ba.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ta={};Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.initPackMcmetaSchemas=void 0;const Ia=Ie;Ta.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Ia.Mod(Ia.ObjectNode({pack:Ia.Mod(Ia.ObjectNode({pack_format:Ia.Mod(Ia.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Ia.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var La={};Object.defineProperty(La,"__esModule",{value:!0}),La.initPredicatesSchemas=void 0;const Pa=Ie;La.initPredicatesSchemas=function(e,t){const r=Pa.Reference.bind(void 0,e),n=Pa.StringNode.bind(void 0,t),i=Pa.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Pa.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Pa.ObjectNode({min:Pa.Opt(Pa.NumberNode({integer:!0})),max:Pa.Opt(Pa.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Pa.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Pa.ObjectNode({items:Pa.Opt(Pa.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Pa.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:Pa.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Pa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Pa.Opt(Pa.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Pa.ObjectNode({enchantment:Pa.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Pa.ObjectNode({blocks:Pa.Opt(Pa.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Pa.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Pa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Pa.Opt(Pa.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Pa.ObjectNode({fluid:Pa.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Pa.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Pa.Opt(Pa.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",Pa.ObjectNode({position:Pa.Opt(Pa.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:Pa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Pa.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Pa.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Pa.Opt(Pa.ObjectNode({light:r("int_bounds")})),smokey:Pa.Opt(Pa.BooleanNode()),block:Pa.Opt(r("block_predicate")),fluid:Pa.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Pa.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[Pa.Switch]:[{push:"type"}],[Pa.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Pa.ObjectNode({gamemode:Pa.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:Pa.Opt(Pa.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Pa.ChoiceNode([{type:"boolean",node:Pa.BooleanNode(),change:e=>!0},{type:"object",node:Pa.MapNode(n(),Pa.BooleanNode())}]))),recipes:Pa.Opt(Pa.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Pa.BooleanNode())),stats:Pa.Opt(Pa.ListNode(r("statistic_predicate"))),looking_at:Pa.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Pa.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:Pa.Opt(Pa.BooleanNode()),visible:Pa.Opt(Pa.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Pa.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds"),absolute:r("float_bounds"),horizontal:r("float_bounds")},{context:"distance"})),e.register("entity_predicate",Pa.ObjectNode({type:Pa.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Pa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Pa.Opt(n({validator:"team"})),location:Pa.Opt(r("location_predicate")),stepping_on:Pa.Opt(r("location_predicate")),distance:Pa.Opt(r("distance_predicate")),flags:Pa.Opt(Pa.ObjectNode({is_on_fire:Pa.Opt(Pa.BooleanNode()),is_sneaking:Pa.Opt(Pa.BooleanNode()),is_sprinting:Pa.Opt(Pa.BooleanNode()),is_swimming:Pa.Opt(Pa.BooleanNode()),is_baby:Pa.Opt(Pa.BooleanNode())})),equipment:Pa.Opt(Pa.MapNode(n({enum:"slot"}),r("item_predicate"))),player:Pa.Opt(r("player_predicate")),vehicle:Pa.Opt(r("entity_predicate")),passenger:Pa.Opt(r("entity_predicate")),targeted_entity:Pa.Opt(r("entity_predicate")),lightning_bolt:Pa.Opt(Pa.ObjectNode({blocks_set_on_fire:Pa.Opt(r("int_bounds")),entity_struck:Pa.Opt(r("entity_predicate"))})),fishing_hook:Pa.Opt(Pa.ObjectNode({in_open_water:Pa.Opt(Pa.BooleanNode())})),effects:Pa.Opt(Pa.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Pa.ObjectNode({is_explosion:Pa.Opt(Pa.BooleanNode()),is_fire:Pa.Opt(Pa.BooleanNode()),is_magic:Pa.Opt(Pa.BooleanNode()),is_projectile:Pa.Opt(Pa.BooleanNode()),is_lightning:Pa.Opt(Pa.BooleanNode()),bypasses_armor:Pa.Opt(Pa.BooleanNode()),bypasses_invulnerability:Pa.Opt(Pa.BooleanNode()),bypasses_magic:Pa.Opt(Pa.BooleanNode()),source_entity:Pa.Opt(r("entity_predicate")),direct_entity:Pa.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Pa.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:Pa.Opt(Pa.BooleanNode()),source_entity:Pa.Opt(r("entity_predicate")),type:Pa.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.initRecipeSchemas=void 0;const za=Ie;Ra.initRecipeSchemas=function(e,t){const r=za.Reference.bind(void 0,e),n=za.StringNode.bind(void 0,t);e.register("recipe",za.Mod(za.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[za.Switch]:[{push:"type"}],[za.Case]:{"minecraft:crafting_shaped":{group:za.Opt(n({enum:"recipe_group",additional:!0})),pattern:za.ListNode(n()),key:za.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:za.Opt(n()),ingredients:za.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:za.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:za.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:za.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:za.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:za.Opt(za.NumberNode()),cookingtime:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:za.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:za.NumberNode({integer:!0})},"minecraft:smithing":{group:za.Opt(n()),base:r("recipe_ingredient_object"),addition:r("recipe_ingredient_object"),result:r("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",za.Mod(za.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:za.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",za.Mod(za.ObjectNode({item:za.Opt(n({validator:"resource",params:{pool:"item"}})),tag:za.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",za.Mod(za.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:za.Opt(za.Mod(za.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initTagsSchemas=void 0;const $a=Ie;Ua.initTagsSchemas=function(e,t){const r=$a.StringNode.bind(void 0,t),n=e=>$a.Mod($a.ObjectNode({replace:$a.Opt($a.BooleanNode()),values:$a.ListNode($a.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:$a.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:$a.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Xa={};Object.defineProperty(Xa,"__esModule",{value:!0}),Xa.initTextComponentSchemas=void 0;const Ja=Ie;Xa.initTextComponentSchemas=function(e,t){const r=Ja.Reference.bind(void 0,e),n=Ja.StringNode.bind(void 0,t),i=e=>{var t;return e instanceof Array?i(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Ja.Mod(Ja.ChoiceNode([{type:"object",node:r("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:i(e[0])}:"object"==typeof e?e:{text:i(e)}},{type:"list",node:r("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:i},{type:"number",node:Ja.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Ja.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Ja.Opt(n()),font:Ja.Opt(n()),bold:Ja.Opt(Ja.BooleanNode()),italic:Ja.Opt(Ja.BooleanNode()),underlined:Ja.Opt(Ja.BooleanNode()),strikethrough:Ja.Opt(Ja.BooleanNode()),obfuscated:Ja.Opt(Ja.BooleanNode()),insertion:Ja.Opt(n()),clickEvent:Ja.Opt(Ja.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ja.Switch]:[{push:"action"}],[Ja.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Ja.Opt(Ja.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Ja.Switch]:[{push:"action"}],[Ja.Case]:{show_text:{value:Ja.Opt(r("text_component")),contents:Ja.Opt(r("text_component"))},show_item:{value:Ja.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Ja.Opt(Ja.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Ja.Opt(Ja.NumberNode({integer:!0})),tag:Ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Ja.Opt(Ja.ObjectNode({name:Ja.Opt(n()),type:Ja.Opt(n()),id:Ja.Opt(n())})),contents:Ja.Opt(Ja.Mod(Ja.ObjectNode({name:Ja.Opt(r("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Ja.Opt(r("text_component_list"))};e.register("text_component_object",Ja.Mod(Ja.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Ja.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Ja.ObjectNode(s({translate:n(),with:Ja.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Ja.ObjectNode(s({score:Ja.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Ja.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Ja.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Ja.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Ja.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Ja.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Ja.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Ja.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Ja.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Ja.Opt(Ja.BooleanNode()),separator:Ja.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Ja.Mod(Ja.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var qa={},Ha={};Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.initBiomeSchemas=void 0;const Wa=Ie;Ha.initBiomeSchemas=function(e,t){const r=Wa.StringNode.bind(void 0,t);e.register("biome",Wa.Mod(Wa.ObjectNode({temperature:Wa.NumberNode(),downfall:Wa.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Wa.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),creature_spawn_probability:Wa.Opt(Wa.NumberNode({min:0,max:1})),effects:Wa.ObjectNode({sky_color:Wa.NumberNode({color:!0}),fog_color:Wa.NumberNode({color:!0}),water_color:Wa.NumberNode({color:!0}),water_fog_color:Wa.NumberNode({color:!0}),grass_color:Wa.Opt(Wa.NumberNode({color:!0})),foliage_color:Wa.Opt(Wa.NumberNode({color:!0})),grass_color_modifier:Wa.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Wa.Opt(r()),mood_sound:Wa.Opt(Wa.ObjectNode({sound:r(),tick_delay:Wa.NumberNode({integer:!0}),block_search_extent:Wa.NumberNode({integer:!0}),offset:Wa.NumberNode()})),additions_sound:Wa.Opt(Wa.ObjectNode({sound:r(),tick_chance:Wa.NumberNode({min:0,max:1})})),music:Wa.Opt(Wa.ObjectNode({sound:r(),min_delay:Wa.NumberNode({integer:!0,min:0}),max_delay:Wa.NumberNode({integer:!0,min:0}),replace_current_music:Wa.BooleanNode()})),particle:Wa.Opt(Wa.ObjectNode({options:Wa.ObjectNode({type:r()}),probability:Wa.NumberNode({min:0,max:1})}))}),spawners:Wa.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Wa.Mod(Wa.ListNode(Wa.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Wa.NumberNode({integer:!0}),minCount:Wa.NumberNode({integer:!0}),maxCount:Wa.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Wa.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Wa.Mod(Wa.ObjectNode({energy_budget:Wa.NumberNode(),charge:Wa.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Wa.MapNode(r({enum:["air","liquid"]}),Wa.Mod(Wa.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Wa.ListNode(Wa.Mod(Wa.ListNode(r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Za={};Object.defineProperty(Za,"__esModule",{value:!0}),Za.initCarverSchemas=void 0;const Ga=Ie,Ka=ga;Za.initCarverSchemas=function(e,t){const r=Ga.Reference.bind(void 0,e),n=Ga.StringNode.bind(void 0,t),i={vertical_rotation:Ka.FloatProvider(),shape:Ga.ObjectNode({distance_factor:Ka.FloatProvider(),thickness:Ka.FloatProvider(),width_smoothness:Ga.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ka.FloatProvider(),vertical_radius_default_factor:Ga.NumberNode(),vertical_radius_center_factor:Ga.NumberNode()})},o={horizontal_radius_multiplier:Ka.FloatProvider(),vertical_radius_multiplier:Ka.FloatProvider(),floor_level:Ka.FloatProvider({min:-1,max:1})};e.register("configured_carver",Ga.Mod(Ga.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Ga.ObjectNode({probability:Ga.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Ka.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:Ga.Opt(Ga.ObjectNode({debug_mode:Ga.Opt(Ga.BooleanNode()),air_state:Ga.Opt(r("block_state")),water_state:Ga.Opt(r("block_state")),lava_state:Ga.Opt(r("block_state")),barrier_state:Ga.Opt(r("block_state"))})),[Ga.Switch]:["pop",{push:"type"}],[Ga.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initDecoratorSchemas=void 0;const Va=Ie,Qa=ga;Ya.initDecoratorSchemas=function(e,t){const r=Va.Reference.bind(void 0,e),n=Va.StringNode.bind(void 0,t);e.register("decorator",Va.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Va.Switch]:[{push:"type"}],[Va.Case]:{"minecraft:block_predicate_filter":{predicate:r("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Va.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Qa.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Qa.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Va.NumberNode(),below_noise:Va.NumberNode({integer:!0}),above_noise:Va.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Va.NumberNode({integer:!0}),noise_factor:Va.NumberNode(),noise_offset:Va.Opt(Va.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Va.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen"),allowed_search_condition:Va.Opt(r("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:r("height_provider")},"minecraft:random_offset":{xz_spread:Qa.IntProvider({min:-16,max:16}),y_spread:Qa.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Va.Opt(Va.NumberNode({integer:!0})),max_inclusive:Va.Opt(Va.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Va.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=ts.Processors=void 0;const rs=Ie;ts.initProcessorListSchemas=function(e,t){const r=rs.Reference.bind(void 0,e),n=rs.StringNode.bind(void 0,t);ts.Processors=rs.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",rs.Mod(rs.ObjectNode({processors:rs.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",rs.Mod(rs.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[rs.Switch]:[{push:"processor_type"}],[rs.Case]:{"minecraft:block_age":{mossiness:rs.NumberNode()},"minecraft:block_ignore":{blocks:rs.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:rs.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:rs.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:rs.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",rs.Mod(rs.ObjectNode({position_predicate:rs.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:rs.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const i={min_dist:rs.Opt(rs.NumberNode({min:0,max:255,integer:!0})),max_dist:rs.Opt(rs.NumberNode({min:0,max:255,integer:!0})),min_chance:rs.Opt(rs.NumberNode({min:0,max:1})),max_chance:rs.Opt(rs.NumberNode({min:0,max:1}))};e.register("pos_rule_test",rs.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[rs.Switch]:[{push:"predicate_type"}],[rs.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},i),"minecraft:linear_pos":i}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",rs.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[rs.Switch]:[{push:"predicate_type"}],[rs.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:rs.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:rs.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(es,"__esModule",{value:!0}),es.initFeatureSchemas=void 0;const ns=Ie,is=ga,os=ts;es.initFeatureSchemas=function(e,t){const r=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t),i=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),o=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:r("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:ns.Opt(ns.NumberNode({integer:!0,min:1})),xz_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),y_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),feature:o},l={state:r("block_state"),radius:is.IntProvider({min:0,max:8}),half_height:ns.NumberNode({integer:!0,min:0,max:4}),targets:ns.ListNode(r("block_state"))},u={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:ns.Opt(ns.NumberNode({integer:!0}))},d=ns.ObjectNode({target:r("rule_test"),state:r("block_state")}),p={size:ns.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:ns.NumberNode({min:0,max:1}),targets:ns.ListNode(d)},m={surface:n({enum:"cave_surface"}),depth:is.IntProvider({min:1,max:128}),vertical_range:ns.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:ns.NumberNode({min:0,max:1}),extra_edge_column_chance:ns.NumberNode({min:0,max:1}),vegetation_chance:ns.NumberNode({min:0,max:1}),xz_radius:is.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:o};e.register("configured_feature",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:ns.ObjectNode({[ns.Switch]:["pop",{push:"type"}],[ns.Case]:{"minecraft:bamboo":{probability:ns.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:is.IntProvider({min:0,max:3}),height:is.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:r("block_predicate_worldgen"),prioritize_tip:ns.BooleanNode(),layers:ns.ListNode(ns.ObjectNode({height:is.IntProvider({min:0}),provider:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:is.IntProvider({min:0,max:16}),rim_size:is.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:ns.NumberNode({integer:!0,min:1,max:512}),height:is.IntProvider({min:0,max:128}),radius:is.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:ns.NumberNode({integer:!0,min:0,max:64}),height_deviation:ns.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:is.IntProvider({min:0,max:128}),density:is.FloatProvider({min:0,max:2}),wetness:is.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:ns.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:ns.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:ns.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:ns.BooleanNode(),exit:ns.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:ns.Opt(ns.BooleanNode()),crystal_beam_target:ns.Opt(r("block_pos")),spikes:ns.ListNode(ns.ObjectNode({centerX:ns.Opt(ns.NumberNode({integer:!0})),centerZ:ns.Opt(ns.NumberNode({integer:!0})),radius:ns.Opt(ns.NumberNode({integer:!0})),height:ns.Opt(ns.NumberNode({integer:!0})),guarded:ns.Opt(ns.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:ns.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:ns.NumberNode({integer:!0,min:0,max:7}),fossil_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:os.Processors,overlay_processors:os.Processors},"minecraft:geode":{blocks:ns.ObjectNode({filling_provider:r("block_state_provider"),inner_layer_provider:r("block_state_provider"),alternate_inner_layer_provider:r("block_state_provider"),middle_layer_provider:r("block_state_provider"),outer_layer_provider:r("block_state_provider"),inner_placements:ns.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:ns.ObjectNode({filling:ns.Opt(ns.NumberNode({min:.01,max:50})),inner_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),middle_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),outer_layer:ns.Opt(ns.NumberNode({min:.01,max:50}))}),crack:ns.ObjectNode({generate_crack_chance:ns.Opt(ns.NumberNode({min:0,max:1})),base_crack_size:ns.Opt(ns.NumberNode({min:0,max:5})),crack_point_offset:ns.Opt(ns.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:ns.Opt(ns.NumberNode({min:0,max:1})),use_potential_placements_chance:ns.Opt(ns.NumberNode({min:0,max:1})),use_alternate_layer0_chance:ns.Opt(ns.NumberNode({min:0,max:1})),placements_require_layer0_alternate:ns.Opt(ns.BooleanNode()),outer_wall_distance:ns.Opt(is.IntProvider({min:1,max:20})),distribution_points:ns.Opt(is.IntProvider({min:1,max:20})),point_offset:ns.Opt(is.IntProvider({min:0,max:10})),min_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),max_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),invalid_blocks_threshold:ns.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:ns.Opt(ns.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:ns.Opt(ns.NumberNode({min:0,max:1})),can_place_on_floor:ns.Opt(ns.BooleanNode()),can_place_on_ceiling:ns.Opt(ns.BooleanNode()),can_place_on_wall:ns.Opt(ns.BooleanNode()),can_be_placed_on:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:r("block_state"),decor_state:r("block_state"),stem_state:r("block_state"),valid_base_block:r("block_state"),planted:ns.Opt(ns.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{fluid:r("block_state_provider"),barrier:r("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:ns.Opt(ns.NumberNode({integer:!0,min:1,max:512})),column_radius:is.IntProvider({min:0,max:60}),height_scale:is.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:ns.NumberNode({min:0,max:1}),stalactite_bluntness:is.FloatProvider({min:.1,max:10}),stalagmite_bluntness:is.FloatProvider({min:.1,max:10}),wind_speed:is.FloatProvider({min:0,max:2}),min_radius_for_wind:ns.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:ns.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:r("block_state_provider"),spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:r("block_state"),target:r("block_state"),radius:is.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":p,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_directional_spread:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius2:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius3:ns.Opt(ns.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:ns.ListNode(ns.ObjectNode({chance:ns.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:ns.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_radius:ns.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:ns.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:ns.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:ns.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:ns.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:r("block_state_provider"),hanging_root_state_provider:r("block_state_provider"),allowed_tree_position:r("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":p,"minecraft:sea_pickle":{count:is.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:ns.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:ns.ListNode(o)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:ns.NumberNode({integer:!0}),hole_count:ns.NumberNode({integer:!0}),requires_block_below:ns.BooleanNode(),valid_blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:ns.Opt(ns.BooleanNode()),force_dirt:ns.Opt(ns.BooleanNode()),minimum_size:r("feature_size"),dirt_provider:r("block_state_provider"),trunk_provider:r("block_state_provider"),foliage_provider:r("block_state_provider"),trunk_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:ns.NumberNode({integer:!0,min:0,max:32}),height_rand_a:ns.NumberNode({integer:!0,min:0,max:24}),height_rand_b:ns.NumberNode({integer:!0,min:0,max:24}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:bending_trunk_placer":{bend_length:is.IntProvider({min:1,max:64}),min_height_for_leaves:ns.Opt(ns.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:is.IntProvider({min:0,max:16}),offset:is.IntProvider({min:0,max:16}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:blob_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:is.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:is.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:is.IntProvider({min:1,max:512}),leaf_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:is.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:ns.ListNode(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:ns.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:ns.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1}),max_height:ns.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:ns.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:ns.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:ns.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":m,"minecraft:waterlogged_vegetation_patch":m}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",ns.Mod(ns.ObjectNode({feature:i,placement:ns.ListNode(r("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:ns.Opt(ns.NumberNode({min:0,max:80})),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:two_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:81})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),upper_limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),middle_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:ns.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:dual_noise_provider":c(s({},h),{variety:is.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:ns.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":c(s({},h),{threshold:ns.NumberNode({min:-1,max:1}),high_chance:ns.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:ns.ListNode(r("block_state")),high_states:ns.ListNode(r("block_state"))}),"minecraft:noise_provider":c(s({},h),{states:ns.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:is.IntProvider(),source:r("block_state_provider")},"minecraft:rotated_block_provider":{state:r("block_state")},"minecraft:simple_state_provider":{state:r("block_state")},"minecraft:weighted_state_provider":{entries:ns.ListNode(ns.Mod(ns.ObjectNode({weight:ns.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:ns.Opt(ns.ListNode(ns.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:all_of":{predicates:ns.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:ns.ListNode(r("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:ns.ListNode(n({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:r("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:r("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initNoiseSettingsSchemas=void 0;const ss=Ie,cs=ga;as.initNoiseSettingsSchemas=function(e,t){const r=ss.Reference.bind(void 0,e),n=ss.StringNode.bind(void 0,t);e.register("noise_settings",ss.Mod(ss.ObjectNode({sea_level:ss.NumberNode({integer:!0}),disable_mob_generation:ss.BooleanNode(),noise_caves_enabled:ss.BooleanNode(),noodle_caves_enabled:ss.BooleanNode(),aquifers_enabled:ss.BooleanNode(),ore_veins_enabled:ss.BooleanNode(),legacy_random_source:ss.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:ss.ObjectNode({min_y:ss.NumberNode({integer:!0,min:-2048,max:2047}),height:ss.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ss.NumberNode({integer:!0}),size_vertical:ss.NumberNode({integer:!0}),island_noise_override:ss.Opt(ss.BooleanNode()),amplified:ss.Opt(ss.BooleanNode()),large_biomes:ss.Opt(ss.BooleanNode()),sampling:ss.ObjectNode({xz_scale:ss.NumberNode(),y_scale:ss.NumberNode(),xz_factor:ss.NumberNode(),y_factor:ss.NumberNode()}),bottom_slide:r("noise_slider"),top_slide:r("noise_slider"),terrain_shaper:r("terrain_shaper")}),surface_rule:r("material_rule"),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>cs.DefaultNoiseSettings,validate:(t,r,n,i)=>{var o,a,s,c;return(null===(o=null==(r=e.validate(t,r,n,i))?void 0:r.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==r?void 0:r.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==r?void 0:r.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==r?void 0:r.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),r}})))),e.register("noise_slider",ss.ObjectNode({target:ss.NumberNode(),size:ss.NumberNode({integer:!0,min:0}),offset:ss.NumberNode({integer:!0})})),e.register("generator_structures",ss.ObjectNode({stronghold:ss.Opt(ss.ObjectNode({distance:ss.NumberNode({integer:!0,min:0,max:1023}),spread:ss.NumberNode({integer:!0,min:0,max:1023}),count:ss.NumberNode({integer:!0,min:1,max:4095})})),structures:ss.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ss.Mod(ss.ObjectNode({spacing:ss.NumberNode({integer:!0,min:0,max:4096}),separation:ss.Mod(ss.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,r,n,i)=>(t.pop().push("spacing").get()<=r&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,r,n,i))}))),salt:ss.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ss.Mod(ss.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ss.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ss.Mod(ss.ObjectNode({offset:r("terrain_spline"),factor:r("terrain_spline"),jaggedness:r("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ss.Mod(ss.ChoiceNode([{type:"number",node:ss.NumberNode()},{type:"object",node:ss.ObjectNode({coordinate:ss.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ss.ListNode(ss.ObjectNode({location:ss.NumberNode(),derivative:ss.NumberNode(),value:r("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ls={};Object.defineProperty(ls,"__esModule",{value:!0}),ls.initStructureFeatureSchemas=void 0;const us=Ie;ls.initStructureFeatureSchemas=function(e,t){const r=us.StringNode.bind(void 0,t),n=us.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:us.NumberNode({integer:!0})};e.register("configured_structure_feature",us.Mod(us.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:us.ObjectNode({[us.Switch]:["pop",{push:"type"}],[us.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:us.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:us.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:us.NumberNode({min:0,max:1}),cluster_probability:us.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":i,"minecraft:ruined_portal":{portal_type:r({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:us.Opt(us.BooleanNode())},"minecraft:village":i}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initSurfaceRuleSchemas=void 0;const ps=Ie;ds.initSurfaceRuleSchemas=function(e,t){const r=ps.StringNode.bind(void 0,t),n=ps.Reference.bind(void 0,e);e.register("material_rule",ps.Mod(ps.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_rule"}}),[ps.Switch]:[{push:"type"}],[ps.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:ps.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",ps.Mod(ps.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_condition"}}),[ps.Switch]:[{push:"type"}],[ps.Case]:{"minecraft:biome":{biome_is:ps.ListNode(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:r({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:ps.NumberNode(),max_threshold:ps.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:ps.NumberNode({integer:!0}),surface_type:r({enum:"cave_surface"}),add_surface_depth:ps.BooleanNode(),add_surface_secondary_depth:ps.BooleanNode()},"minecraft:vertical_gradient":{random_name:r(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:ps.NumberNode({integer:!0}),surface_depth_multiplier:ps.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:ps.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:ps.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:ps.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ms={};Object.defineProperty(ms,"__esModule",{value:!0}),ms.initTemplatePoolSchemas=void 0;const hs=Ie,fs=ts;ms.initTemplatePoolSchemas=function(e,t){const r=hs.Reference.bind(void 0,e),n=hs.StringNode.bind(void 0,t);e.register("template_pool",hs.Mod(hs.ObjectNode({fallback:n(),elements:hs.ListNode(r("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",hs.Mod(hs.ObjectNode({weight:hs.NumberNode({integer:!0,min:1}),element:r("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",hs.Mod(hs.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[hs.Switch]:[{push:"element_type"}],[hs.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors},"minecraft:list_pool_element":{elements:hs.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(qa,"__esModule",{value:!0}),qa.initWorldgenSchemas=void 0;const _s=Ha,gs=Za,bs=Ya,ys=es,vs=as,xs=ts,Ns=ls,ws=ds,ks=ms;qa.initWorldgenSchemas=function(e,t){xs.initProcessorListSchemas(e,t),_s.initBiomeSchemas(e,t),gs.initCarverSchemas(e,t),bs.initDecoratorSchemas(e,t),ys.initFeatureSchemas(e,t),vs.initNoiseSettingsSchemas(e,t),Ns.initStructureFeatureSchemas(e,t),ws.initSurfaceRuleSchemas(e,t),ks.initTemplatePoolSchemas(e,t)};var Os={};Object.defineProperty(Os,"__esModule",{value:!0}),Os.initWorldSettingsSchemas=void 0;const Ss=Ie;Os.initWorldSettingsSchemas=function(e,t){const r=Ss.Reference.bind(void 0,e),n=Ss.StringNode.bind(void 0,t);e.register("world_settings",Ss.Mod(Ss.ObjectNode({generate_features:Ss.BooleanNode(),bonus_chest:Ss.BooleanNode(),seed:Ss.NumberNode({integer:!0}),dimensions:Ss.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),r("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(sa,"__esModule",{value:!0}),sa.initSchemas=void 0;const As=ca,Ds=ua,Cs=ga,Es=ba,Fs=xa,Bs=ka,Ms=Aa,js=Ea,Ts=Ta,Is=La,Ls=Ra,Ps=Ua,Rs=Xa,zs=qa,Us=Os;sa.initSchemas=function(e,t){Cs.initCommonSchemas(e,t),As.initAdvancementSchemas(e,t),Ds.initAssetsSchemas(e,t),Es.initConditionSchemas(e,t),Bs.initDimensionTypeSchemas(e,t),Fs.initDimensionSchemas(e,t),Ms.initItemModifierSchemas(e,t),js.initLootTableSchemas(e,t),Ts.initPackMcmetaSchemas(e,t),Is.initPredicatesSchemas(e,t),Ls.initRecipeSchemas(e,t),Ps.initTagsSchemas(e,t),Rs.initTextComponentSchemas(e,t),zs.initWorldgenSchemas(e,t),Us.initWorldSettingsSchemas(e,t)};var $s=Te&&Te.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),Xs=Te&&Te.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Js=Te&&Te.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.hasOwnProperty.call(e,r)&&$s(t,e,r);return Xs(t,e),t};Object.defineProperty(oa,"__esModule",{value:!0});var qs=oa.getSchemas=oa.getCollections=void 0;const Hs=Ie,Ws=aa,Zs=sa;var Gs=oa.lootContext=Js(Fa);var Ks=oa.getCollections=function(){const e=new Hs.CollectionRegistry;return Ws.initCollections(e),e};qs=oa.getSchemas=function(e){const t=new Hs.SchemaRegistry;return Zs.initSchemas(t,e),t};var Ys=Object.freeze(Object.assign(Object.create(null),oa,{[Symbol.toStringTag]:"Module",get getSchemas(){return qs},get getCollections(){return Ks},lootContext:Gs,default:oa})); -/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function Vs(e){let t=e.length;for(;--t>=0;)e[t]=0}const Qs=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ec=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),tc=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),rc=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),nc=new Array(576);Vs(nc);const ic=new Array(60);Vs(ic);const oc=new Array(512);Vs(oc);const ac=new Array(256);Vs(ac);const sc=new Array(29);Vs(sc);const cc=new Array(30);function lc(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let uc,dc,pc;function mc(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}Vs(cc);const hc=e=>e<256?oc[e]:oc[256+(e>>>7)],fc=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},_c=(e,t,r)=>{e.bi_valid>16-r?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<{_c(e,r[2*t],r[2*t+1])},bc=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},yc=(e,t,r)=>{const n=new Array(16);let i,o,a=0;for(i=1;i<=15;i++)n[i]=a=a+r[i-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=bc(n[t]++,t))}},vc=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},xc=e=>{e.bi_valid>8?fc(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Nc=(e,t,r,n)=>{const i=2*t,o=2*r;return e[i]{const n=e.heap[r];let i=r<<1;for(;i<=e.heap_len&&(i{let n,i,o,a,s=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],i=e.pending_buf[e.l_buf+s],s++,0===n?gc(e,i,t):(o=ac[i],gc(e,o+256+1,t),a=Qs[o],0!==a&&(i-=sc[o],_c(e,i,a)),n--,o=hc(n),gc(e,o,r),a=ec[o],0!==a&&(n-=cc[o],_c(e,n,a)))}while(s{const r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)wc(e,r,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wc(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,r[2*c]=r[2*a]+r[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,r[2*a+1]=r[2*s+1]=c,e.heap[1]=c++,wc(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,u,d,p,m,h,f=0;for(p=0;p<=15;p++)e.bl_count[p]=0;for(r[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],p=r[2*r[2*u+1]+1]+1,p>c&&(p=c,f++),r[2*u+1]=p,u>n||(e.bl_count[p]++,m=0,u>=s&&(m=a[u-s]),h=r[2*u],e.opt_len+=h*(p+m),o&&(e.static_len+=h*(i[2*u+1]+m)));if(0!==f){do{for(p=c-1;0===e.bl_count[p];)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(p=c;0!==p;p--)for(u=e.bl_count[p];0!==u;)d=e.heap[--l],d>n||(r[2*d+1]!==p&&(e.opt_len+=(p-r[2*d+1])*r[2*d],r[2*d+1]=p),u--)}})(e,t),yc(r,l,e.bl_count)},Sc=(e,t,r)=>{let n,i,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++s{let n,i,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++s{_c(e,0+(n?1:0),3),((e,t,r,n)=>{xc(e),n&&(fc(e,r),fc(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var Ec={_tr_init:e=>{Dc||((()=>{let e,t,r,n,i;const o=new Array(16);for(r=0,n=0;n<28;n++)for(sc[n]=r,e=0;e<1<>=7;n<30;n++)for(cc[n]=i<<7,e=0;e<1<{let i,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Oc(e,e.l_desc),Oc(e,e.d_desc),a=(e=>{let t;for(Sc(e,e.dyn_ltree,e.l_desc.max_code),Sc(e,e.dyn_dtree,e.d_desc.max_code),Oc(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*rc[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=r+5,r+4<=i&&-1!==t?Cc(e,t,r,n):4===e.strategy||o===i?(_c(e,2+(n?1:0),3),kc(e,nc,ic)):(_c(e,4+(n?1:0),3),((e,t,r,n)=>{let i;for(_c(e,t-257,5),_c(e,r-1,5),_c(e,n-4,4),i=0;i(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(ac[r]+256+1)]++,e.dyn_dtree[2*hc(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{_c(e,2,3),gc(e,256,nc),(e=>{16===e.bi_valid?(fc(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Fc=(e,t,r,n)=>{let i=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==r;){a=r>2e3?2e3:r,r-=a;do{i=i+t[n++]|0,o=o+i|0}while(--a);i%=65521,o%=65521}return i|o<<16|0};const Bc=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());var Mc=(e,t,r,n)=>{const i=Bc,o=n+r;e^=-1;for(let a=n;a>>8^i[255&(e^t[a])];return-1^e},jc={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Tc={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ic,_tr_stored_block:Lc,_tr_flush_block:Pc,_tr_tally:Rc,_tr_align:zc}=Ec,{Z_NO_FLUSH:Uc,Z_PARTIAL_FLUSH:$c,Z_FULL_FLUSH:Xc,Z_FINISH:Jc,Z_BLOCK:qc,Z_OK:Hc,Z_STREAM_END:Wc,Z_STREAM_ERROR:Zc,Z_DATA_ERROR:Gc,Z_BUF_ERROR:Kc,Z_DEFAULT_COMPRESSION:Yc,Z_FILTERED:Vc,Z_HUFFMAN_ONLY:Qc,Z_RLE:el,Z_FIXED:tl,Z_DEFAULT_STRATEGY:rl,Z_UNKNOWN:nl,Z_DEFLATED:il}=Tc,ol=(e,t)=>(e.msg=jc[t],t),al=e=>(e<<1)-(e>4?9:0),sl=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let cl=(e,t,r)=>(t<{const t=e.state;let r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))},ul=(e,t)=>{Pc(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ll(e.strm)},dl=(e,t)=>{e.pending_buf[e.pending++]=t},pl=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},ml=(e,t,r,n)=>{let i=e.avail_in;return i>n&&(i=n),0===i?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),r),1===e.state.wrap?e.adler=Fc(e.adler,t,i,r):2===e.state.wrap&&(e.adler=Mc(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},hl=(e,t)=>{let r,n,i=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,p=e.strstart+258;let m=l[o+a-1],h=l[o+a];e.prev_length>=e.good_match&&(i>>=2),s>e.lookahead&&(s=e.lookahead);do{if(r=t,l[r+a]===h&&l[r+a-1]===m&&l[r]===l[o]&&l[++r]===l[o+1]){o+=2,r++;do{}while(l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&l[++o]===l[++r]&&oa){if(e.match_start=t,a=n,n>=s)break;m=l[o+a-1],h=l[o+a]}}}while((t=d[t&u])>c&&0!=--i);return a<=e.lookahead?a:e.lookahead},fl=e=>{const t=e.w_size;let r,n,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do{i=e.head[--r],e.head[r]=i>=t?i-t:0}while(--n);n=t,r=n;do{i=e.prev[--r],e.prev[r]=i>=t?i-t:0}while(--n);o+=t}if(0===e.strm.avail_in)break;if(n=ml(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=n,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=cl(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=cl(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},_l=(e,t)=>{let r,n;for(;;){if(e.lookahead<262){if(fl(e),e.lookahead<262&&t===Uc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=cl(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-262&&(e.match_length=hl(e,r)),e.match_length>=3)if(n=Rc(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=cl(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=cl(e,e.ins_h,e.window[e.strstart+1]);else n=Rc(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ul(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===Jc?(ul(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ul(e,!1),0===e.strm.avail_out)?1:2},gl=(e,t)=>{let r,n,i;for(;;){if(e.lookahead<262){if(fl(e),e.lookahead<262&&t===Uc)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=cl(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=Rc(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=cl(e,e.ins_h,e.window[e.strstart+3-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(ul(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=Rc(e,0,e.window[e.strstart-1]),n&&ul(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Rc(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===Jc?(ul(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ul(e,!1),0===e.strm.avail_out)?1:2};function bl(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}const yl=[new bl(0,0,0,0,((e,t)=>{let r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(fl(e),0===e.lookahead&&t===Uc)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ul(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(ul(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Jc?(ul(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(ul(e,!1),e.strm.avail_out),1)})),new bl(4,4,8,4,_l),new bl(4,5,16,8,_l),new bl(4,6,32,32,_l),new bl(4,4,16,16,gl),new bl(8,16,32,32,gl),new bl(8,16,128,128,gl),new bl(8,32,128,256,gl),new bl(32,128,258,1024,gl),new bl(32,258,258,4096,gl)];function vl(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=il,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),sl(this.dyn_ltree),sl(this.dyn_dtree),sl(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),sl(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),sl(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xl=e=>{if(!e||!e.state)return ol(e,Zc);e.total_in=e.total_out=0,e.data_type=nl;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=Uc,Ic(t),Hc},Nl=e=>{const t=xl(e);var r;return t===Hc&&((r=e.state).window_size=2*r.w_size,sl(r.head),r.max_lazy_match=yl[r.level].max_lazy,r.good_match=yl[r.level].good_length,r.nice_match=yl[r.level].nice_length,r.max_chain_length=yl[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=2,r.match_available=0,r.ins_h=0),t},wl=(e,t,r,n,i,o)=>{if(!e)return Zc;let a=1;if(t===Yc&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>9||r!==il||n<8||n>15||t<0||t>9||o<0||o>tl)return ol(e,Zc);8===n&&(n=9);const s=new vl;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<wl(e,t,il,15,8,rl),deflateInit2:wl,deflateReset:Nl,deflateResetKeep:xl,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?Zc:(e.state.gzhead=t,Hc):Zc,deflate:(e,t)=>{let r,n;if(!e||!e.state||t>qc||t<0)return e?ol(e,Zc):Zc;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==Jc)return ol(e,0===e.avail_out?Kc:Zc);i.strm=e;const o=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,dl(i,31),dl(i,139),dl(i,8),i.gzhead?(dl(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),dl(i,255&i.gzhead.time),dl(i,i.gzhead.time>>8&255),dl(i,i.gzhead.time>>16&255),dl(i,i.gzhead.time>>24&255),dl(i,9===i.level?2:i.strategy>=Qc||i.level<2?4:0),dl(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(dl(i,255&i.gzhead.extra.length),dl(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=Mc(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(dl(i,0),dl(i,0),dl(i,0),dl(i,0),dl(i,0),dl(i,9===i.level?2:i.strategy>=Qc||i.level<2?4:0),dl(i,3),i.status=113);else{let t=il+(i.w_bits-8<<4)<<8,r=-1;r=i.strategy>=Qc||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=r<<6,0!==i.strstart&&(t|=32),t+=31-t%31,i.status=113,pl(i,t),0!==i.strstart&&(pl(i,e.adler>>>16),pl(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(r=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>r&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),ll(e),r=i.pending,i.pending!==i.pending_buf_size));)dl(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),ll(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),0===n&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){r=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>r&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),ll(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=Mc(e.adler,i.pending_buf,i.pending-r,r)),0===n&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&ll(e),i.pending+2<=i.pending_buf_size&&(dl(i,255&e.adler),dl(i,e.adler>>8&255),e.adler=0,i.status=113)):i.status=113),0!==i.pending){if(ll(e),0===e.avail_out)return i.last_flush=-1,Hc}else if(0===e.avail_in&&al(t)<=al(o)&&t!==Jc)return ol(e,Kc);if(666===i.status&&0!==e.avail_in)return ol(e,Kc);if(0!==e.avail_in||0!==i.lookahead||t!==Uc&&666!==i.status){let r=i.strategy===Qc?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(fl(e),0===e.lookahead)){if(t===Uc)return 1;break}if(e.match_length=0,r=Rc(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(ul(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Jc?(ul(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ul(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===el?((e,t)=>{let r,n,i,o;const a=e.window;for(;;){if(e.lookahead<=258){if(fl(e),e.lookahead<=258&&t===Uc)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(i=e.strstart-1,n=a[i],n===a[++i]&&n===a[++i]&&n===a[++i])){o=e.strstart+258;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&ie.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(r=Rc(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Rc(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(ul(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Jc?(ul(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(ul(e,!1),0===e.strm.avail_out)?1:2})(i,t):yl[i.level].func(i,t);if(3!==r&&4!==r||(i.status=666),1===r||3===r)return 0===e.avail_out&&(i.last_flush=-1),Hc;if(2===r&&(t===$c?zc(i):t!==qc&&(Lc(i,0,0,!1),t===Xc&&(sl(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),ll(e),0===e.avail_out))return i.last_flush=-1,Hc}return t!==Jc?Hc:i.wrap<=0?Wc:(2===i.wrap?(dl(i,255&e.adler),dl(i,e.adler>>8&255),dl(i,e.adler>>16&255),dl(i,e.adler>>24&255),dl(i,255&e.total_in),dl(i,e.total_in>>8&255),dl(i,e.total_in>>16&255),dl(i,e.total_in>>24&255)):(pl(i,e.adler>>>16),pl(i,65535&e.adler)),ll(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Hc:Wc)},deflateEnd:e=>{if(!e||!e.state)return Zc;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?ol(e,Zc):(e.state=null,113===t?ol(e,Gc):Hc)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return Zc;const n=e.state,i=n.wrap;if(2===i||1===i&&42!==n.status||n.lookahead)return Zc;if(1===i&&(e.adler=Fc(e.adler,t,r,0)),n.wrap=0,r>=n.w_size){0===i&&(sl(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(r-n.w_size,r),0),t=e,r=n.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,fl(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=cl(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,fl(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=i,Hc},deflateInfo:"pako deflate (from Nodeca project)"};const Ol=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Sl=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(const t in r)Ol(r,t)&&(e[t]=r[t])}}return e},Al=e=>{let t=0;for(let n=0,i=e.length;n=252?6:_b>=248?5:_b>=240?4:_b>=224?3:_b>=192?2:1;Cl[254]=Cl[254]=1;var El=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,i,o,a=e.length,s=0;for(i=0;i>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t},Fl=(e,t)=>{const r=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,i;const o=new Array(2*r);for(i=0,n=0;n4)o[i++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n1?o[i++]=65533:t<65536?o[i++]=t:(t-=65536,o[i++]=55296|t>>10&1023,o[i++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Dl)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let r=t-1;for(;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+Cl[e[r]]>t?r:t};var Ml=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const jl=Object.prototype.toString,{Z_NO_FLUSH:Tl,Z_SYNC_FLUSH:Il,Z_FULL_FLUSH:Ll,Z_FINISH:Pl,Z_OK:Rl,Z_STREAM_END:zl,Z_DEFAULT_COMPRESSION:Ul,Z_DEFAULT_STRATEGY:$l,Z_DEFLATED:Xl}=Tc;function Jl(e){this.options=Sl({level:Ul,method:Xl,chunkSize:16384,windowBits:15,memLevel:8,strategy:$l},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ml,this.strm.avail_out=0;let r=kl.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==Rl)throw new Error(jc[r]);if(t.header&&kl.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?El(t.dictionary):"[object ArrayBuffer]"===jl.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=kl.deflateSetDictionary(this.strm,e),r!==Rl)throw new Error(jc[r]);this._dict_set=!0}}Jl.prototype.push=function(e,t){const r=this.strm,n=this.options.chunkSize;let i,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Pl:Tl,"string"==typeof e?r.input=El(e):"[object ArrayBuffer]"===jl.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),(o===Il||o===Ll)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(i=kl.deflate(r,o),i===zl)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=kl.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Rl;if(0!==r.avail_out){if(o>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},Jl.prototype.onData=function(e){this.chunks.push(e)},Jl.prototype.onEnd=function(e){e===Rl&&(this.result=Al(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ql=function(e,t){let r,n,i,o,a,s,c,l,u,d,p,m,h,f,_,g,b,y,v,x,N,w,k,O;const S=e.state;r=e.next_in,k=e.input,n=r+(e.avail_in-5),i=e.next_out,O=e.output,o=i-(t-e.avail_out),a=i+(e.avail_out-257),s=S.dmax,c=S.wsize,l=S.whave,u=S.wnext,d=S.window,p=S.hold,m=S.bits,h=S.lencode,f=S.distcode,_=(1<>>24,p>>>=y,m-=y,y=b>>>16&255,0===y)O[i++]=65535&b;else{if(!(16&y)){if(0==(64&y)){b=h[(65535&b)+(p&(1<>>=y,m-=y),m<15&&(p+=k[r++]<>>24,p>>>=y,m-=y,y=b>>>16&255,!(16&y)){if(0==(64&y)){b=f[(65535&b)+(p&(1<s){e.msg="invalid distance too far back",S.mode=30;break e}if(p>>>=y,m-=y,y=i-o,x>y){if(y=x-y,y>l&&S.sane){e.msg="invalid distance too far back",S.mode=30;break e}if(N=0,w=d,0===u){if(N+=c-y,y2;)O[i++]=w[N++],O[i++]=w[N++],O[i++]=w[N++],v-=3;v&&(O[i++]=w[N++],v>1&&(O[i++]=w[N++]))}else{N=i-x;do{O[i++]=O[N++],O[i++]=O[N++],O[i++]=O[N++],v-=3}while(v>2);v&&(O[i++]=O[N++],v>1&&(O[i++]=O[N++]))}break}}break}}while(r>3,r-=v,m-=v<<3,p&=(1<{const c=s.bits;let l,u,d,p,m,h,f=0,_=0,g=0,b=0,y=0,v=0,x=0,N=0,w=0,k=0,O=null,S=0;const A=new Uint16Array(16),D=new Uint16Array(16);let C,E,F,B=null,M=0;for(f=0;f<=15;f++)A[f]=0;for(_=0;_=1&&0===A[b];b--);if(y>b&&(y=b),0===b)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(g=1;g0&&(0===e||1!==b))return-1;for(D[1]=0,f=1;f<15;f++)D[f+1]=D[f]+A[f];for(_=0;_852||2===e&&w>592)return 1;for(;;){C=f-x,a[_]h?(E=B[M+a[_]],F=O[S+a[_]]):(E=96,F=0),l=1<>x)+u]=C<<24|E<<16|F|0}while(0!==u);for(l=1<>=1;if(0!==l?(k&=l-1,k+=l):k=0,_++,0==--A[f]){if(f===b)break;f=t[r+a[_]]}if(f>y&&(k&p)!==d){for(0===x&&(x=y),m+=g,v=f-x,N=1<852||2===e&&w>592)return 1;d=k&p,i[d]=y<<24|v<<16|m-o|0}}return 0!==k&&(i[m+k]=f-x<<24|64<<16|0),s.bits=y,0};const{Z_FINISH:Yl,Z_BLOCK:Vl,Z_TREES:Ql,Z_OK:eu,Z_STREAM_END:tu,Z_NEED_DICT:ru,Z_STREAM_ERROR:nu,Z_DATA_ERROR:iu,Z_MEM_ERROR:ou,Z_BUF_ERROR:au,Z_DEFLATED:su}=Tc,cu=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function lu(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const uu=e=>{if(!e||!e.state)return nu;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,eu},du=e=>{if(!e||!e.state)return nu;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,uu(e)},pu=(e,t)=>{let r;if(!e||!e.state)return nu;const n=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?nu:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,du(e))},mu=(e,t)=>{if(!e)return nu;const r=new lu;e.state=r,r.window=null;const n=pu(e,t);return n!==eu&&(e.state=null),n};let hu,fu,_u=!0;const gu=e=>{if(_u){hu=new Int32Array(512),fu=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Kl(1,e.lens,0,288,hu,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Kl(2,e.lens,0,32,fu,0,e.work,{bits:5}),_u=!1}e.lencode=hu,e.lenbits=9,e.distcode=fu,e.distbits=5},bu=(e,t,r,n)=>{let i;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>n&&(i=n),o.window.set(t.subarray(r-n,r-n+i),o.wnext),(n-=i)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whavemu(e,15),inflateInit2:mu,inflate:(e,t)=>{let r,n,i,o,a,s,c,l,u,d,p,m,h,f,_,g,b,y,v,x,N,w,k=0;const O=new Uint8Array(4);let S,A;const D=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return nu;r=e.state,12===r.mode&&(r.mode=13),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,u=r.bits,d=s,p=c,w=eu;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=Mc(r.check,O,2,0),l=0,u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=30;break}if((15&l)!==su){e.msg="unknown compression method",r.mode=30;break}if(l>>>=4,u-=4,N=8+(15&l),0===r.wbits)r.wbits=N;else if(N>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(O[0]=255&l,O[1]=l>>>8&255,r.check=Mc(r.check,O,2,0)),l=0,u=0,r.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,O[2]=l>>>16&255,O[3]=l>>>24&255,r.check=Mc(r.check,O,4,0)),l=0,u=0,r.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&r.flags&&(O[0]=255&l,O[1]=l>>>8&255,r.check=Mc(r.check,O,2,0)),l=0,u=0,r.mode=5;case 5:if(1024&r.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,r.check=Mc(r.check,O,2,0)),l=0,u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(m=r.length,m>s&&(m=s),m&&(r.head&&(N=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(n.subarray(o,o+m),N)),512&r.flags&&(r.check=Mc(r.check,n,m,o)),s-=m,o+=m,r.length-=m),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break e;m=0;do{N=n[o+m++],r.head&&N&&r.length<65536&&(r.head.name+=String.fromCharCode(N))}while(N&&m>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&u,u-=7&u,r.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<>>=1,u-=1,3&l){case 0:r.mode=14;break;case 1:if(gu(r),r.mode=20,t===Ql){l>>>=2,u-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,u=0,r.mode=15,t===Ql)break e;case 15:r.mode=16;case 16:if(m=r.length,m){if(m>s&&(m=s),m>c&&(m=c),0===m)break e;i.set(n.subarray(o,o+m),a),s-=m,o+=m,c-=m,a+=m,r.length-=m;break}r.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,u-=5,r.ndist=1+(31&l),l>>>=5,u-=5,r.ncode=4+(15&l),l>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},w=Kl(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,w){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>24,g=k>>>16&255,b=65535&k,!(_<=u);){if(0===s)break e;s--,l+=n[o++]<>>=_,u-=_,r.lens[r.have++]=b;else{if(16===b){for(A=_+2;u>>=_,u-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}N=r.lens[r.have-1],m=3+(3&l),l>>>=2,u-=2}else if(17===b){for(A=_+3;u>>=_,u-=_,N=0,m=3+(7&l),l>>>=3,u-=3}else{for(A=_+7;u>>=_,u-=_,N=0,m=11+(127&l),l>>>=7,u-=7}if(r.have+m>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;m--;)r.lens[r.have++]=N}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},w=Kl(1,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,w){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},w=Kl(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,w){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,t===Ql)break e;case 20:r.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,r.hold=l,r.bits=u,ql(e,p),a=e.next_out,i=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=r.hold,u=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;k=r.lencode[l&(1<>>24,g=k>>>16&255,b=65535&k,!(_<=u);){if(0===s)break e;s--,l+=n[o++]<>y)],_=k>>>24,g=k>>>16&255,b=65535&k,!(y+_<=u);){if(0===s)break e;s--,l+=n[o++]<>>=y,u-=y,r.back+=y}if(l>>>=_,u-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(A=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;k=r.distcode[l&(1<>>24,g=k>>>16&255,b=65535&k,!(_<=u);){if(0===s)break e;s--,l+=n[o++]<>y)],_=k>>>24,g=k>>>16&255,b=65535&k,!(y+_<=u);){if(0===s)break e;s--,l+=n[o++]<>>=y,u-=y,r.back+=y}if(l>>>=_,u-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(A=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===c)break e;if(m=p-c,r.offset>m){if(m=r.offset-m,m>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}m>r.wnext?(m-=r.wnext,h=r.wsize-m):h=r.wnext-m,m>r.length&&(m=r.length),f=r.window}else f=i,h=a-r.offset,m=r.length;m>c&&(m=c),c-=m,r.length-=m;do{i[a++]=f[h++]}while(--m);0===r.length&&(r.mode=21);break;case 26:if(0===c)break e;i[a++]=r.length,c--,r.mode=21;break;case 27:if(r.wrap){for(;u<32;){if(0===s)break e;s--,l|=n[o++]<{if(!e||!e.state)return nu;let t=e.state;return t.window&&(t.window=null),e.state=null,eu},inflateGetHeader:(e,t)=>{if(!e||!e.state)return nu;const r=e.state;return 0==(2&r.wrap)?nu:(r.head=t,t.done=!1,eu)},inflateSetDictionary:(e,t)=>{const r=t.length;let n,i,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?nu:11===n.mode&&(i=1,i=Fc(i,t,r,0),i!==n.check)?iu:(o=bu(e,t,r,r),o?(n.mode=31,ou):(n.havedict=1,eu))):nu},inflateInfo:"pako inflate (from Nodeca project)"};var vu=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const xu=Object.prototype.toString,{Z_NO_FLUSH:Nu,Z_FINISH:wu,Z_OK:ku,Z_STREAM_END:Ou,Z_NEED_DICT:Su,Z_STREAM_ERROR:Au,Z_DATA_ERROR:Du,Z_MEM_ERROR:Cu}=Tc;function Eu(e){this.options=Sl({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ml,this.strm.avail_out=0;let r=yu.inflateInit2(this.strm,t.windowBits);if(r!==ku)throw new Error(jc[r]);if(this.header=new vu,yu.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=El(t.dictionary):"[object ArrayBuffer]"===xu.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=yu.inflateSetDictionary(this.strm,t.dictionary),r!==ku)))throw new Error(jc[r])}Eu.prototype.push=function(e,t){const r=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?wu:Nu,"[object ArrayBuffer]"===xu.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),o=yu.inflate(r,a),o===Su&&i&&(o=yu.inflateSetDictionary(r,i),o===ku?o=yu.inflate(r,a):o===Du&&(o=Su));r.avail_in>0&&o===Ou&&r.state.wrap>0&&0!==e[r.next_in];)yu.inflateReset(r),o=yu.inflate(r,a);switch(o){case Au:case Du:case Su:case Cu:return this.onEnd(o),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||o===Ou))if("string"===this.options.to){let e=Bl(r.output,r.next_out),t=r.next_out-e,i=Fl(r.output,e);r.next_out=t,r.avail_out=n-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(i)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(o!==ku||0!==s){if(o===Ou)return o=yu.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},Eu.prototype.onData=function(e){this.chunks.push(e)},Eu.prototype.onEnd=function(e){e===ku&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Al(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Fu,Bu,Mu={exports:{}},ju={exports:{}};Fu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Bu={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Bu.rotl(e,8)|4278255360&Bu.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r>>6*(3-i)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,n=0;r>>6-2*n);return t}},ju.exports=Bu;var Tu={utf8:{stringToBytes:function(e){return Tu.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Tu.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r>>24)|4278255360&(s[m]<<24|s[m]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var h=i._ff,f=i._gg,_=i._hh,g=i._ii;for(m=0;m>>0,u=u+y>>>0,d=d+v>>>0,p=p+x>>>0}return e.endian([l,u,d,p])};i._ff=function(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+(i>>>0)+a;return(s<>>32-o)+t},i._gg=function(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+(i>>>0)+a;return(s<>>32-o)+t},i._hh=function(e,t,r,n,i,o,a){var s=e+(t^r^n)+(i>>>0)+a;return(s<>>32-o)+t},i._ii=function(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+(i>>>0)+a;return(s<>>32-o)+t},i._blocksize=16,i._digestsize=16,Mu.exports=function(t,r){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(i(t,r));return r&&r.asBytes?o:r&&r.asString?n.bytesToString(o):e.bytesToHex(o)}}();var Ru,zu,Uu=Mu.exports;(zu=Ru||(Ru={})).UP="up",zu.DOWN="down",zu.NORTH="north",zu.EAST="east",zu.SOUTH="south",zu.WEST="west";const $u={[Ru.UP]:[0,1,0],[Ru.DOWN]:[0,-1,0],[Ru.NORTH]:[0,0,-1],[Ru.EAST]:[1,0,0],[Ru.SOUTH]:[0,0,1],[Ru.WEST]:[-1,0,0]};var Xu,Ju,qu,Hu,Wu,Zu,Gu,Ku,Yu,Vu,Qu,ed,td,rd,nd,id;function od(e,t,r){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==r)throw new Error(`Expected ${t} to be of type ${r}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return $u[e]}}(Ru||(Ru={})),function(e){e.create=function(e,t,r){return[e,t,r]},e.offset=function(e,t,r,n){return[e[0]+t,e[1]+r,e[2]+n]},e.towards=function(t,r){return e.offset(t,...Ru.normal(r))}}(Xu||(Xu={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,r){var n;const i=null!==(n=t(e))&&void 0!==n?n:{};return Object.fromEntries(Object.entries(i).map((([e,t])=>[e,r(t)])))},e.compose=function(e,t,r){const n=t(e);return n?r(n):void 0}}(Ju||(Ju={}));class ad{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=od(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>od(e.value,"Properties","compound")),{}),n=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:od(r,t,"string")})),{});return new ad(t,n)}static fromJson(e){var t,r;const n=null!==(t=Ju.readObject(e))&&void 0!==t?t:{},i=null!==(r=Ju.readString(n.Name))&&void 0!==r?r:"minecraft:stone",o=Ju.readMap(n.Properties,(e=>{var t;return null!==(t=Ju.readString(e))&&void 0!==t?t:""}));return new ad(i,o)}}ad.AIR=new ad("minecraft:air");class sd{constructor(e){this.minY=e,this.storage=Array(sd.SIZE),this.palette=[ad.AIR]}get minBlockY(){return this.minY<<4}index(e,t,r){return(e<<8)+(t<<4)+r}getBlockState(e,t,r){var n;const i=this.storage[this.index(e,t,r)];return null!==(n=this.palette[i])&&void 0!==n?n:ad.AIR}setBlockState(e,t,r,n){let i=this.palette.findIndex((e=>e.equals(n)));-1===i&&(i=this.palette.length,this.palette.push(n)),this.storage[this.index(e,t,r)]=i}}sd.WIDTH=16,sd.SIZE=sd.WIDTH*sd.WIDTH*sd.WIDTH;class cd{constructor(e,t,r){this.minY=e,this.height=t,this.pos=r,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[r,n,i]=e,o=this.sections[this.getSectionIndex(n)];return null!==(t=null==o?void 0:o.getBlockState(15&r,15&n,15&i))&&void 0!==t?t:ad.AIR}setBlockState(e,t){const[r,n,i]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(ad.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&r,15&n,15&i,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new sd(this.minSection+e)),this.sections[e]}}function ld(e){return e*e}function ud(e,t,r){return Math.max(t,Math.min(r,e))}function dd(e,t,r){return t+e*(r-t)}function pd(e,t,r,n,i,o){return dd(t,dd(e,r,n),dd(e,i,o))}function md(e,t,r){return r<0?e:r>1?t:dd(r,e,t)}function hd(e){return e*e*e*(e*(6*e-15)+10)}!function(e){e.create=function(e,t){return[e,t]},e.fromBlockPos=function(e){return[e[0]>>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return e[0]<<19},e.maxBlockZ=function(e){return e[1]<<19}}(qu||(qu={}));class fd{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new fd(this.nextLong())}setSeed(e){this.seed=e^fd.MULTIPLIER&fd.MODULUS_MASK}advance(){this.seed=this.seed*fd.MULTIPLIER+fd.INCREMENT&fd.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(fd.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,r;for(;(t=this.next(31))-(r=t%e)+(e-1)<0;);return r}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^_d.SILVER_RATIO_64,r=t+_d.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[_d.mixStafford13(t),_d.mixStafford13(r)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=_d.upgradeSeedTo128bit(e)}fork(){return new _d([this.next(),this.next()])}static getSeed(e,t,r){let n=e*BigInt(3129871)^r*BigInt(116129781)^t;return n=n*n*BigInt(42317861)+n*BigInt(11),n>>BigInt(16)}forkAt(e,t,r){const n=_d.getSeed(e,t,r)^this.seed[0];return new _d([n,this.seed[1]])}static LongfromBytes(e,t,r,n,i,o,a,s){return BigInt(e)<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],r=this.seed[1];for(let n=0;n>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const r=BigInt(e);let n=t*r,i=n&BigInt(4294967295);if(i>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*_d.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*_d.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}_d.SILVER_RATIO_64=BigInt("7640891576956012809"),_d.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),_d.FLOAT_MULTIPLIER=1/Math.pow(2,24),_d.DOUBLE_MULTIPLIER=11102230246251565e-32;class gd{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=n}}sample2D(e,t){let r,n,i;const o=(e+t)*gd.F2,a=Math.floor(e+o),s=e-(a-(r=(a+(n=Math.floor(t+o)))*gd.G2));let c,l;s>(i=t-(n-r))?(c=1,l=0):(c=0,l=1);const u=s-c+gd.G2,d=i-l+gd.G2,p=s-1+2*gd.G2,m=i-1+2*gd.G2,h=255&a,f=255&n,_=this.P(h+this.P(f))%12,g=this.P(h+c+this.P(f+l))%12,b=this.P(h+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(_,s,i,0,.5)+this.getCornerNoise3D(g,u,d,0,.5)+this.getCornerNoise3D(b,p,m,0,.5))}sample(e,t,r){const n=.3333333333333333*(e+t+r),i=Math.floor(e+n),o=Math.floor(t+n),a=Math.floor(r+n),s=.16666666666666666*(i+o+a),c=e-(i-s),l=t-(o-s),u=r-(a-s);let d,p,m,h,f,_;c>=l?l>=u?(d=1,p=0,m=0,h=1,f=1,_=0):c>=u?(d=1,p=0,m=0,h=1,f=0,_=1):(d=0,p=0,m=1,h=1,f=0,_=1):l127?t-256:t;for(let t=0;t<256;t+=1){const r=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+r],this.p[t+r]=n}}sample(e,t,r,n=0,i=0){const o=e+this.xo,a=t+this.yo,s=r+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,p=a-l,m=s-u;let h=0;if(0!==n){const e=i>=0&&i=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,p,m,u,t*u)/o),o/=2}return md(a/512,s/512,i)/128}}(Hu||(Hu={})).fromJson=function(e){var t,r,n,i,o;const a=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(r=Ju.readNumber(a.xz_scale))&&void 0!==r?r:1,yScale:null!==(n=Ju.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(i=Ju.readNumber(a.xz_factor))&&void 0!==i?i:80,yFactor:null!==(o=Ju.readNumber(a.y_factor))&&void 0!==o?o:80}};class xd{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new yd(e,t,r),this.second=new yd(e,t,r);let n=1/0,i=-1/0;for(let a=0;a{var t;return null!==(t=Ju.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}},function(e){e.fromJson=function(t,r){var n,i,o,a;if("number"==typeof t)return new Nd(t);const s=null!==(n=Ju.readObject(t))&&void 0!==n?n:{},c=new wd(r(s.coordinate)),l=null!==(i=Ju.readArray(s.points,(e=>{var t;return null!==(t=Ju.readObject(e))&&void 0!==t?t:{}})))&&void 0!==i?i:[];if(0===l.length)return new Nd(0);for(const u of l){const t=null!==(o=Ju.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,r),i=null!==(a=Ju.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,i)}return c}}(Zu||(Zu={}));class Nd{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class wd{constructor(e,t=[],r=[],n=[]){this.coordinate=e,this.locations=t,this.values=r,this.derivatives=n}apply(e){const t=this.coordinate.apply(e),r=function(e,t,r){let n=t-e;for(;n>0;){const t=Math.floor(n/2),i=e+t;r(i)?n=t:(e=i+1,n-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(Gu||(Gu={})).rotate=function(e,t,r){let{up:n,down:i,north:o,east:a,south:s,west:c}=e;switch(r){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[n,o,i,s]=[o,i,s,n];break;case 180:[n,o,i,s]=[i,s,n,o];break;case 270:[n,o,i,s]=[s,n,o,i]}return{up:n,down:i,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new r(e,null!=t?t:e):e}e.target=function(e,t,r,n,o,a){return new i(e,t,r,n,o,a)},e.parameters=function(e,r,i,o,a,s,c){return new n(t(e),t(r),t(i),t(o),t(a),t(s),c)},e.param=t;class r{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,r=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(r,0)}union(e){return new r(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new r(e,e);const[n,i]=null!==(t=Ju.readArray(e,(e=>Ju.readNumber(e))))&&void 0!==t?t:[];return new r(null!=n?n:0,null!=i?i:0)}}e.Param=r;class n{constructor(e,t,r,n,i,o,a){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=n,this.depth=i,this.weirdness=o,this.offset=a}fittness(e){return ld(this.temperature.distance(e.temperature))+ld(this.humidity.distance(e.humidity))+ld(this.continentalness.distance(e.continentalness))+ld(this.erosion.distance(e.erosion))+ld(this.depth.distance(e.depth))+ld(this.weirdness.distance(e.weirdness))+ld(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new r(this.offset,this.offset)]}static fromJson(e){var t,i;const o=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return new n(r.fromJson(o.temperature),r.fromJson(o.humidity),r.fromJson(o.continentalness),r.fromJson(o.erosion),r.fromJson(o.depth),r.fromJson(o.weirdness),null!==(i=Ju.readInt(o.offset))&&void 0!==i?i:0)}}e.ParamPoint=n;class i{constructor(e,t,r,n,i,o){this.temperature=e,this.humidity=t,this.continentalness=r,this.erosion=n,this.depth=i,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=i,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let r=0;r<7;r+=1){const n=e.space[r];t+=Math.abs((n.min+n.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,r=-1,n=[];for(let i=0;i<7;++i){e=o.sort(e,i,!1),n=o.bucketize(e);let a=0;for(const e of n)a+=o.area(e.space);t>a&&(t=a,r=i)}return e=o.sort(e,r,!1),n=o.bucketize(e),n=o.sort(n,r,!0),new s(n.map((e=>o.build(e.children))))}static sort(e,t,r){return e.map((e=>{const n=e.space[t],i=(n.min+n.max)/2;return{key:r?Math.abs(i):i,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let r=[];const n=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const i of e)r.push(i),r.lengthnew r(1/0,-1/0)));for(const r of e)t=[...Array(7)].map(((e,n)=>t[n].union(r.space[n])));return t}search(e,t){let r=1/0,n=null;for(const i of this.children){const o=t(i,e);if(r<=o)continue;const a=i.search(e,t),s=i==a?o:t(a,e);r<=s||(r=s,n=a)}return n}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(Ku||(Ku={}));class kd{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const n=null!==(t=Ju.readObject(e))&&void 0!==t?t:{},i=null!==(r=Ju.readString(n.biome))&&void 0!==r?r:"minecraft:the_void";return new kd(i)}}class Od{constructor(e,t,r){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=r}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const r=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return new Od(Zu.fromJson(r.offset,this.EXTRACTOR),Zu.fromJson(r.factor,this.EXTRACTOR),Zu.fromJson(r.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+Od.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,r){return{continents:e,erosion:t,weirdness:r,ridges:this.peaksAndValleys(r)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),r=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),n=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),i=new wd(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,r).addPoint(1,n),o=new wd(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new wd(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Od(i,o,a)}static getErosionFactor(e,t){const r=new wd(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new wd(this.EROSION).addPoint(-.6,r).addPoint(-.5,new wd(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,r).addPoint(-.25,r).addPoint(-.1,new wd(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,r);if(t){const t=new wd(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),r=new wd(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,r).addPoint(.55,r).addPoint(.62,e)}else{const t=new wd(this.RIDGES).addPoint(-.7,r).addPoint(-.15,1.37),i=new wd(this.RIDGES).addPoint(.45,r).addPoint(.7,1.56);n.addPoint(.05,i).addPoint(.4,i).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}static buildErosionOffsetSpline(e,t,r,n,i,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(dd(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(dd(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,dd(.5,.5,.5)*n,.5*n,.6*n,.5),p=this.ridgeSpline(e,i*n,t*n,.5*n,.6*n,.5),m=this.ridgeSpline(e,i,i,t,r,.5),h=this.ridgeSpline(e,i,i,t,r,.5),f=new wd(this.RIDGES).addPoint(-1,e).addPoint(-.4,m).addPoint(0,r+.07),_=this.ridgeSpline(-.02,o,o,t,r,0),g=new wd(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,p).addPoint(.2,m);return a&&g.addPoint(.4,h).addPoint(.45,f).addPoint(.55,f).addPoint(.58,h),g.addPoint(.7,_),g}static buildMountainRidgeSplineWithPoints(e,t){const r=new wd(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),i=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new wd(Od.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}Od.GLOBAL_OFFSET=-.50375,Od.EXTRACTOR=e=>{var t;const r=null!==(t=Ju.readString(e))&&void 0!==t?t:"continents";return Od.extractor(r)},Od.CONTINENTS=Od.extractor("continents"),Od.EROSION=Od.extractor("erosion"),Od.WEIRDNESS=Od.extractor("weirdness"),Od.RIDGES=Od.extractor("ridges"),(Yu||(Yu={})).fromList=function(e){return(t,r,n,i)=>{for(const o of e){const e=o(t,r,n,i);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,r,n,i,o,a,s,c;const l=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return{minY:null!==(r=Ju.readInt(l.min_y))&&void 0!==r?r:0,height:null!==(n=Ju.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(i=Ju.readInt(l.size_horizontal))&&void 0!==i?i:1,ySize:null!==(o=Ju.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:Hu.fromJson(l.sampling),topSlide:Qu.fromJson(l.top_slide),bottomSlide:Qu.fromJson(l.bottom_slide),terrainShaper:Od.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=Ju.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=Ju.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=Ju.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(Vu||(Vu={})),function(e){e.fromJson=function(e){var t,r,n,i;const o=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return{target:null!==(r=Ju.readNumber(o.target))&&void 0!==r?r:0,size:null!==(n=Ju.readInt(o.size))&&void 0!==n?n:0,offset:null!==(i=Ju.readInt(o.offset))&&void 0!==i?i:0}},e.apply=function(e,t,r){if(e.size<=0)return t;const n=(r-e.offset)/e.size;return md(e.target,t,n)}}(Qu||(Qu={}));class Sd{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Sd.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Sd.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const r=Array(t+1);for(let n=0;n>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const e=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let t=0;t<=l;t+=1){const r=this.firstNoiseZ+t;this.noiseData[u][t]=n.noiseData(e,r)}}this.baseNoise=n.makeBaseNoiseFiller(this,a)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}createNoiseInterpolator(e){const t=new Sd(this,e);return this.interpolators.push(t),t}initializeForFirstCellX(){this.interpolators.forEach((e=>e.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((r=>r.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,r){return this.baseNoise(e,t,r)}}(ed||(ed={})).create=function(e,t,r){return{offset:e,factor:t,jaggedness:r}};class Dd{constructor(e,t,r,n=!1){if(this.settings=e,n){const n=new fd(t);this.blendedNoise=new vd(n.fork(),e.sampling,Vu.cellWidth(e),Vu.cellHeight(e)),n.consume(8),this.temperatureNoise=new xd(new fd(t),r.temperature),this.humidityNoise=new xd(new fd(t+BigInt(1)),r.humidity),this.continentalnessNoise=new xd(new fd(t+BigInt(2)),r.continentalness),this.erosionNoise=new xd(new fd(t+BigInt(3)),r.erosion),this.weirdnessNoise=new xd(new fd(t+BigInt(4)),r.weirdness),this.offsetNoise=new xd(new fd(t+BigInt(5)),r.shift),this.jaggedNoise=new xd(n.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const n=_d.create(t).fork();this.blendedNoise=new vd(n.forkWithHashOf("minecraft:terrain"),e.sampling,Vu.cellWidth(e),Vu.cellHeight(e)),this.temperatureNoise=new xd(n.forkWithHashOf("minecraft:temperature"),r.temperature),this.humidityNoise=new xd(n.forkWithHashOf("minecraft:vegetation"),r.humidity),this.continentalnessNoise=new xd(n.forkWithHashOf("minecraft:continentalness"),r.continentalness),this.erosionNoise=new xd(n.forkWithHashOf("minecraft:erosion"),r.erosion),this.weirdnessNoise=new xd(n.forkWithHashOf("minecraft:ridge"),r.weirdness),this.offsetNoise=new xd(n.forkWithHashOf("minecraft:offset"),r.shift),this.jaggedNoise=new xd(n.forkWithHashOf("minecraft:jagged"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=e.terrainShaper,this.baseNoise=e=>{const t=e.createNoiseInterpolator(((t,r,n)=>this.calculateBaseNoise(t,r,n,e.getNoiseData(t>>2,n>>2).terrainInfo)));return()=>t.sample()}}noiseData(e,t){const r=e+this.getOffset(e,0,t),n=t+this.getOffset(t,e,0),i=this.getContinentalness(r,n),o=this.getErosion(r,n),a=this.getWeirdness(r,n),s=this.terrainInfo(i,o,a);return td.create(r,n,i,o,a,s)}sample(e,t,r){return this.target(e,t,r,this.noiseData(e,r))}target(e,t,r,n){const i=n.shiftedX,o=t+this.getOffset(t,r,e),a=n.shiftedZ,s=this.getTemperature(i,o,a),c=this.getHumidity(i,o,a),l=this.computeDimensionDensity(t<<2,n.terrainInfo);return Ku.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,r){const n=Od.point(e,t,r),i=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return ed.create(i,o,a)}getOffset(e,t,r){return 4*this.offsetNoise.sample(e,t,r)}getTemperature(e,t,r){return this.temperatureNoise.sample(e,t,r)}getHumidity(e,t,r){return this.humidityNoise.sample(e,t,r)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t){const r=this.baseNoise(e);return(e,n,i)=>{let o=r();return o=ud(.64*o,-1,1),o=o/2-o*o*o/24,o+=t(e,n,i),o>0?null:ad.AIR}}calculateBaseNoise(e,t,r,n){let i=this.blendedNoise.sample(e,t,r);if(n){const o=this.sampleJaggedNoise(n.jaggedness,e,r),a=this.computeDimensionDensity(t,n),s=n.factor*(o+a);i+=s>0?4*s:s}return i=ud(i,-64,64),i=this.applySlide(i,t/Vu.cellHeight(this.settings)),i=ud(i,-64,64),i}sampleJaggedNoise(e,t,r){if(0===e)return 0;const n=this.jaggedNoise.sample(1500*t,0,1500*r);return n>0?e*n:e/2*n}computeDimensionDensity(e,t){return 1-e/128+t.offset}applySlide(e,t){const r=t-Vu.minCellY(this.settings);return e=Qu.apply(this.settings.topSlide,e,Vu.cellCountY(this.settings)-r),Qu.apply(this.settings.bottomSlide,e,r)}}(td||(td={})).create=function(e,t,r,n,i,o){return{shiftedX:e,shiftedZ:t,continentalness:r,weirdness:n,erosion:i,terrainInfo:o}};class Cd{constructor(e,t,r){this.biomeSource=t,this.settings=r,this.sampler=new Dd(r.noise,e,r.octaves,r.legacyRandomSource),this.materialRule=Yu.fromList([(e,t,r,n)=>e.updateNoiseAndGenerateBaseState(t,r,n)])}fill(e){var t;const r=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),i=Vu.cellWidth(this.settings.noise),o=Vu.cellHeight(this.settings.noise),a=Math.floor(16/i),s=Math.floor(r/o),c=Math.floor((n-r)/o),l=qu.minBlockX(e.pos),u=qu.minBlockZ(e.pos),d=new Ad(a,c,s,this.sampler,l,u,(()=>0),this.settings);d.initializeForFirstCellX();for(let p=0;p=0;a-=1){d.selectCellYZ(a,r);for(let c=o-1;c>=0;c-=1){const m=(s+a)*o+c,h=15&m,f=e.getSectionIndex(m);e.getSectionIndex(n.minBlockY)!==f&&(n=e.getOrCreateSection(f));const _=c/o;d.updateForY(_);for(let e=0;e{var t,r,n;return{distance:null!==(t=Ju.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=Ju.readInt(e.spread))&&void 0!==r?r:0,count:null!==(n=Ju.readInt(e.count))&&void 0!==n?n:0}})),structures:Ju.readMap(r.structures,(e=>{var t,r,n,i,o;return r=null!==(t=Ju.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=Ju.readInt(r.spacing))&&void 0!==n?n:0,separation:null!==(i=Ju.readInt(r.separation))&&void 0!==i?i:0,salt:null!==(o=Ju.readInt(r.salt))&&void 0!==o?o:0}}))}},(id||(id={})).fromJson=function(e){var t;const r=null!==(t=Ju.readObject(e))&&void 0!==t?t:{};return{temperature:Wu.fromJson(r.temperature),humidity:Wu.fromJson(r.humidity),continentalness:Wu.fromJson(r.continentalness),erosion:Wu.fromJson(r.erosion),weirdness:Wu.fromJson(r.weirdness),shift:Wu.fromJson(r.shift)}};let Fd=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Fd.decode();let Bd=null;function Md(e,t){return Fd.decode((null!==Bd&&Bd.buffer===Ed.memory.buffer||(Bd=new Uint8Array(Ed.memory.buffer)),Bd).subarray(e,e+t))}const jd=new Uint32Array(2),Td=new BigInt64Array(jd.buffer);let Id=null;function Ld(){return null!==Id&&Id.buffer===Ed.memory.buffer||(Id=new Int32Array(Ed.memory.buffer)),Id}let Pd=null;function Rd(){return null!==Pd&&Pd.buffer===Ed.memory.buffer||(Pd=new Float64Array(Ed.memory.buffer)),Pd}let zd=0;function Ud(e,t){const r=t(8*e.length);return Rd().set(e,r/8),zd=e.length,r}let $d=null;function Xd(e,t){const r=t(4*e.length);return(null!==$d&&$d.buffer===Ed.memory.buffer||($d=new Uint32Array(Ed.memory.buffer)),$d).set(e,r/4),zd=e.length,r}function Jd(e,t,r,n,i,o,a,s,c,l,u,d,p,m){var h=Ud(e,Ed.__wbindgen_malloc),f=zd,_=Ud(t,Ed.__wbindgen_malloc),g=zd,b=Ud(r,Ed.__wbindgen_malloc),y=zd,v=Ud(n,Ed.__wbindgen_malloc),x=zd,N=Ud(i,Ed.__wbindgen_malloc),w=zd,k=Ud(o,Ed.__wbindgen_malloc),O=zd,S=Ud(a,Ed.__wbindgen_malloc),A=zd,D=Ud(s,Ed.__wbindgen_malloc),C=zd,E=Ud(c,Ed.__wbindgen_malloc),F=zd,B=Ud(l,Ed.__wbindgen_malloc),M=zd,j=Ud(u,Ed.__wbindgen_malloc),T=zd,I=Ud(d,Ed.__wbindgen_malloc),L=zd,P=Ud(p,Ed.__wbindgen_malloc),R=zd,z=Xd(m,Ed.__wbindgen_malloc),U=zd,$=Ed.biome_parameters(h,f,_,g,b,y,v,x,N,w,k,O,S,A,D,C,E,F,B,M,j,T,I,L,P,R,z,U);return Gd.__wrap($)}function qd(e,t,r,n,i,o,a,s,c,l,u,d,p){Td[0]=e;const m=jd[0],h=jd[1];var f=Ud(r,Ed.__wbindgen_malloc),_=zd,g=Ud(i,Ed.__wbindgen_malloc),b=zd,y=Ud(a,Ed.__wbindgen_malloc),v=zd,x=Ud(c,Ed.__wbindgen_malloc),N=zd,w=Ud(u,Ed.__wbindgen_malloc),k=zd,O=Ud(p,Ed.__wbindgen_malloc),S=zd,A=Ed.climate_sampler(m,h,t,f,_,n,g,b,o,y,v,s,x,N,l,w,k,d,O,S);return Kd.__wrap(A)}function Hd(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function Wd(e,t,r,n,i,o,a,s,c,l,u){try{const h=Ed.__wbindgen_add_to_stack_pointer(-16);Hd(e,Gd),Hd(t,Kd),Ed.multi_noise(h,e.ptr,t.ptr,r,n,i,o,a,s,c,l,u);var d=Ld()[h/4+0],p=Ld()[h/4+1],m=function(e,t){return Ld().subarray(e/4,e/4+t)}(d,p).slice();return Ed.__wbindgen_free(d,4*p),m}finally{Ed.__wbindgen_add_to_stack_pointer(16)}}function Zd(e,t,r,n,i,o,a,s,c,l){try{const m=Ed.__wbindgen_add_to_stack_pointer(-16);Hd(e,Kd),Ed.climate_noise(m,e.ptr,t,r,n,i,o,a,s,c,l);var u=Ld()[m/4+0],d=Ld()[m/4+1],p=function(e,t){return Rd().subarray(e/8,e/8+t)}(u,d).slice();return Ed.__wbindgen_free(u,8*d),p}finally{Ed.__wbindgen_add_to_stack_pointer(16)}}class Gd{static __wrap(e){const t=Object.create(Gd.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Ed.__wbg_parameterlist_free(e)}}class Kd{static __wrap(e){const t=Object.create(Kd.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();Ed.__wbg_sampler_free(e)}}async function Yd(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",u.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(Md(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:n}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(r){if("application/wasm"==e.headers.get("Content-Type"))throw r;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r)}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}(await e,t);return Ed=r.exports,Yd.__wbindgen_wasm_module=n,Ed}var Vd="/assets/deepslate_rs_bg.4990c219.wasm",Qd={exports:{}};Qd.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(1),i=r(3),o=r(8),a=r(15);function s(e,t,r){var a=null,s=function(e,t){r&&r(e,t),a&&a.visit(e,t)},c="function"==typeof r?s:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(l||u)&&((a=new n.CommentHandler).attach=u,t.comment=!0,c=s)}var d,p=!1;t&&"string"==typeof t.sourceType&&(p="module"===t.sourceType),d=t&&"boolean"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,c):new o.Parser(e,t,c);var m=p?d.parseModule():d.parseScript();return l&&a&&(m.comments=a.comments),d.config.tokens&&(m.tokens=d.tokens),d.config.tolerant&&(m.errors=d.errorHandler.errors),m}t.parse=s,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType="module",s(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType="script",s(e,n,r)},t.tokenize=function(e,t,r){var n,i=new a.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(s){i.errorHandler.tolerate(s)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var c=r(2);t.Syntax=c.Syntax,t.version="4.0.1"},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(5),s=r(6),c=r(7),l=r(8),u=r(13),d=r(14);function p(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var r=e;t=p(r.namespace)+":"+p(r.name);break;case s.JSXSyntax.JSXMemberExpression:var n=e;t=p(n.object)+"."+p(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var m=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,a=!1;!this.scanner.eof()&&r&&!n;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(n=";"===s,t+=s,++this.scanner.index,!n)switch(t.length){case 2:i="#"===s;break;case 3:i&&(r=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),i=i&&!a);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(r&&n&&t.length>2){var c=t.substr(1,t.length-2);i&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):i||a||!d.XHTMLEntities[c]||(t=d.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==r;)n+="&"===c?this.scanXHTMLEntity(r):c;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===i&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new a.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var a=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var d=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=d;var p=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=p;var m=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=m;var h=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=h},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=s;var c=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=l;var u=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var d=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=d;var p=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=p;var m=function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=m;var h=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=h;var f=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=f;var _=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=_;var g=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=g;var b=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=b;var y=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=y;var v=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=v;var x=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=x;var N=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=N;var w=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=w;var k=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=k;var O=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=O;var S=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=S;var A=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=A;var D=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=D;var C=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=C;var E=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=E;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var B=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=B;var M=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=M;var j=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=j;var T=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=T;var I=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=I;var L=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=L;var P=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=P;var R=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=R;var z=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=z;var U=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=U;var $=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=$;var X=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=X;var J=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=J;var q=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=q;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var W=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=W;var Z=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=Z;var G=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=G;var K=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=K;var Y=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var V=function(e,t,r,i,o,a){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=a};t.Property=V;var Q=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=Q;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=n.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var de=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=de;var pe=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=pe;var me=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=me;var he=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=he;var fe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=fe;var _e=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=_e;var ge=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=ge;var be=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ye=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ye;var ve=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ve;var xe=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=xe},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(10),o=r(11),a=r(7),s=r(12),c=r(2),l=r(13),u="ArrowParameterPlaceHolder",d=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new a.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new a.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new a.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,s=null,c=!1,l=!1,u=!1,d=!1;if(3===n.type){var p=n.value;this.nextToken(),c=this.match("["),i=(d=!(this.hasLineTerminator||"async"!==p||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new a.Identifier(p))}else this.match("*")?this.nextToken():(c=this.match("["),i=this.parseObjectPropertyKey());var m=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!d&&"get"===n.value&&m)t="get",c=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===n.type&&!d&&"set"===n.value&&m)t="set",c=this.match("["),i=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&m)t="init",c=this.match("["),i=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!d)!c&&this.isPropertyKey(i,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===n.type)if(p=this.finalize(r,new a.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var h=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(r,new a.AssignmentPattern(p,h))}else u=!0,s=p;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new a.Property(t,i,c,s,l,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new a.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:u,params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:u,params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:u,params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,r.value,s],l=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&n<=l[l.length-1];){s=c.pop();var u=c.pop();l.pop(),o=c.pop(),i.pop();var d=this.startNode(i[i.length-1]);c.push(this.finalize(d,new a.BinaryExpression(u,o,s)))}c.push(this.nextToken().value),l.push(n),i.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=c.length-1;t=c[p];for(var m=i.pop();p>1;){var h=i.pop(),f=m&&m.lineStart;d=this.startNode(h,f),u=c[p-1],t=this.finalize(d,new a.BinaryExpression(u,c[p-2],t)),p-=2,m=h}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var r=0;r")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var p=this.context.allowYield,m=this.context.await;this.context.allowYield=!0,this.context.await=i;var h=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var _=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=_}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var g=f.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=i?this.finalize(h,new a.AsyncArrowFunctionExpression(s.params,f,g)):this.finalize(h,new a.ArrowFunctionExpression(s.params,f,g)),this.context.strict=l,this.context.allowStrictDirective=d,this.context.allowYield=p,this.context.await=m}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var y=(r=this.nextToken()).value,v=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(y,e,v)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new a.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new a.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new a.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;r=this.parseVariableIdentifier();var l=this.finalize(i,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(c),new a.AssignmentPattern(l,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,n=l)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new a.Property("init",r,o,n,!1,s))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new a.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new a.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new a.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new a.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new a.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,s=null,l=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var d=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===p.length&&this.matchKeyword("in")){var m=p[0];m.init&&(m.id.type===c.Syntax.ArrayPattern||m.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(n=this.finalize(n,new a.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var h=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(d=this.context.allowIn,this.context.allowIn=!1,p=this.parseBindingList(h,{inFor:!0}),this.context.allowIn=d,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new a.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(p,h)))):(n=this.finalize(n,new a.Identifier(h)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var f=this.lookahead;if(d=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,l=!1;else{if(this.match(",")){for(var _=[n];this.match(",");)this.nextToken(),_.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(f),new a.SequenceExpression(_))}this.expect(";")}}if(void 0===e&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var g=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=g}return void 0===e?this.finalize(u,new a.ForStatement(n,i,s,r)):l?this.finalize(u,new a.ForInStatement(e,t,r)):this.finalize(u,new a.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(s)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new a.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[i]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=u}else s=this.parseStatement();delete this.context.labelSet[i],e=new a.LabeledStatement(n,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new a.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n="",i=null,s=null,c=!1,l=!1,u=!1,d=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,c=this.match("["),this.match("*")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var p=this.lookahead.value;":"!==p&&"("!==p&&"*"!==p&&(d=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var m=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&m?(n="get",c=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&m&&(n="set",c=this.match("["),i=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&m&&(n="init",c=this.match("["),i=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!n&&i&&this.match("(")&&(n="init",s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),c||(u&&this.isPropertyKey(i,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(i,"constructor")&&(("method"!==n||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(r,new a.MethodDefinition(i,c,s,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new a.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(r,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=d},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(n){Object.create&&Object.defineProperty&&(r=Object.create(n),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(4),o=r(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(a)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=s(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+s(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(r)}catch(i){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){a=!0;break}"["===e&&(r=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;r=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),i=r(12),o=r(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?i-4:i;for(r=0;r>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=ip[e.charCodeAt(r)]<<2|ip[e.charCodeAt(r+1)]>>4,a[s++]=255&t);1===o&&(t=ip[e.charCodeAt(r)]<<10|ip[e.charCodeAt(r+1)]<<4|ip[e.charCodeAt(r+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,r=e.length,n=r%3,i=[],o=16383,a=0,s=r-n;as?s:a+o));1===n?(t=e[r-1],i.push(np[t>>2]+np[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(np[t>>10]+np[t>>4&63]+np[t<<2&63]+"="));return i.join("")}},np=[],ip=[],op="undefined"!=typeof Uint8Array?Uint8Array:Array,ap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sp=0,cp=ap.length;sp0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function up(e,t,r){for(var n,i,o=[],a=t;a>18&63]+np[i>>12&63]+np[i>>6&63]+np[63&i]);return o.join("")}ip["-".charCodeAt(0)]=62,ip["_".charCodeAt(0)]=63;var dp={}; -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function pp(e){return Object.prototype.toString.call(e)}dp.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,c=(1<>1,u=-7,d=r?i-1:0,p=r?-1:1,m=e[t+d];for(d+=p,o=m&(1<<-u)-1,m>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=p,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=n;u>0;a=256*a+e[t+d],d+=p,u-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(m?-1:1);a+=Math.pow(2,n),o-=l}return(m?-1:1)*a*Math.pow(2,o-n)},dp.write=function(e,t,r,n,i,o){var a,s,c,l=8*o-i-1,u=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?0:o-1,h=n?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,i),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),a=0));i>=8;e[r+m]=255&s,m+=h,s/=256,i-=8);for(a=a<0;e[r+m]=255&a,m+=h,a/=256,l-=8);e[r+m-h]|=128*f}, -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -function(e){const t=rp,r=dp,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const i=2147483647;function o(e){if(e>i)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,r)}function s(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=o(r);const i=n.write(e,t);i!==r&&(n=n.slice(0,i));return n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return u(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return d(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return d(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,r);const i=function(e){if(a.isBuffer(e)){const t=0|p(e.length),r=o(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||Z(e.length)?o(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|p(e))}function u(e){const t=e.length<0?0:0|p(e.length),r=o(t);for(let n=0;n=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|e}function m(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return J(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(e).length;default:if(i)return n?-1:J(e).length;t=(""+t).toLowerCase(),i=!0}}function h(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return S(this,t,r);case"latin1":case"binary":return A(this,t,r);case"base64":return w(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function _(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Z(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:g(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function g(e,t,r,n,i){let o,a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,r/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let n=-1;for(o=r;os&&(r=s-c),o=r;o>=0;o--){let r=!0;for(let n=0;ni&&(n=i):n=i;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function w(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function k(e,t,r){r=Math.min(e.length,r);const n=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+a<=r){let r,n,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:r=e[i+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(o=c));break;case 3:r=e[i+1],n=e[i+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:r=e[i+1],n=e[i+2],s=e[i+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=a}return function(e){const t=e.length;if(t<=O)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(n,i)):Uint8Array.prototype.set.call(n,t,i);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,i)}i+=t.length}return n},a.byteLength=m,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(t+=" ... "),""},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,r,n,i){if(W(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(n,i),u=e.slice(t,r);for(let a=0;a>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":case"latin1":case"binary":return v(this,e,t,r);case"base64":return x(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const O=4096;function S(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;in)&&(r=n);let i="";for(let o=t;or)throw new RangeError("Trying to access beyond buffer length")}function F(e,t,r,n,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function B(e,t,r,n,i){z(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function M(e,t,r,n,i){z(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function j(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(e,t,n,i,o){return t=+t,n>>>=0,o||j(e,0,n,4),r.write(e,t,n,i,23,4),n+4}function I(e,t,n,i,o){return t=+t,n>>>=0,o||j(e,0,n,8),r.write(e,t,n,i,52,8),n+8}a.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||E(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,r||E(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=K((function(e){U(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(i)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||E(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||E(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||E(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(e,t){e>>>=0,t||E(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=K((function(e){U(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||$(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||E(e,4,this.length),r.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||E(e,4,this.length),r.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||E(e,8,this.length),r.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||E(e,8,this.length),r.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){F(this,e,t,r,Math.pow(2,8*r)-1,0)}let i=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,!n){F(this,e,t,r,Math.pow(2,8*r)-1,0)}let i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=K((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=K((function(e,t=0){return M(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);F(this,e,t,r,n-1,-n)}let i=0,o=1,a=0;for(this[t]=255&e;++i>0)-a&255;return t+r},a.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);F(this,e,t,r,n-1,-n)}let i=r-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+r},a.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||F(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=K((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=K((function(e,t=0){return M(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,r){return T(this,e,t,!0,r)},a.prototype.writeFloatBE=function(e,t,r){return T(this,e,t,!1,r)},a.prototype.writeDoubleLE=function(e,t,r){return I(this,e,t,!0,r)},a.prototype.writeDoubleBE=function(e,t,r){return I(this,e,t,!1,r)},a.prototype.copy=function(e,t,r,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function z(e,t,r,n,i,o){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new L.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){U(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||$(t,e.length-(r+1))}(n,i,o)}function U(e,t){if("number"!=typeof e)throw new L.ERR_INVALID_ARG_TYPE(t,"number",e)}function $(e,t,r){if(Math.floor(e)!==e)throw U(e,r),new L.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new L.ERR_BUFFER_OUT_OF_BOUNDS;throw new L.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}P("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),P("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),P("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=R(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=R(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n}),RangeError);const X=/[^+/0-9A-Za-z-_]/g;function J(e,t){let r;t=t||1/0;const n=e.length;let i=null;const o=[];for(let a=0;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(X,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Z(e){return e!=e}const G=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function K(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(tp),ep.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===pp(e)},ep.isBoolean=function(e){return"boolean"==typeof e},ep.isNull=function(e){return null===e},ep.isNullOrUndefined=function(e){return null==e},ep.isNumber=function(e){return"number"==typeof e},ep.isString=function(e){return"string"==typeof e},ep.isSymbol=function(e){return"symbol"==typeof e},ep.isUndefined=function(e){return void 0===e},ep.isRegExp=function(e){return"[object RegExp]"===pp(e)},ep.isObject=function(e){return"object"==typeof e&&null!==e},ep.isDate=function(e){return"[object Date]"===pp(e)},ep.isError=function(e){return"[object Error]"===pp(e)||e instanceof Error},ep.isFunction=function(e){return"function"==typeof e},ep.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},ep.isBuffer=tp.Buffer.isBuffer;const mp=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let hp;const fp=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function _p(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const r=fp(e),n=fp(t);let i=0;return rn&&(t*=mp[r-n-1],e/=10,i=1),e===t?i:e=0;)i++;return i-t}function bp(e,t,r){for(r--;t>>1;i(r,e[t])<0?s=t:a=t+1}let c=n-a;switch(c){case 3:e[a+3]=e[a+2],hp[a+3]=hp[a+2];case 2:e[a+2]=e[a+1],hp[a+2]=hp[a+1];case 1:e[a+1]=e[a],hp[a+1]=hp[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],hp[a+c]=hp[a+c-1],c--}e[a]=r,hp[a]=o}}function vp(e,t,r,n,i,o){let a=0,s=0,c=1;if(o(e,t[r+i])>0){for(s=n-i;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=i,c+=i}else{for(s=i+1;cs&&(c=s);const n=a;a=i-c,c=i-n}for(a++;a>>1);o(e,t[r+n])>0?a=n+1:c=n}return c}function xp(e,t,r,n,i,o){let a=0,s=0,c=1;if(o(e,t[r+i])<0){for(s=i+1;cs&&(c=s);const n=a;a=i-c,c=i-n}else{for(s=n-i;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=i,c+=i}for(a++;a>>1);o(e,t[r+n])<0?c=n:a=n+1}return c}class Np{constructor(e,t){this.array=e,this.compare=t;const{length:r}=e;this.length=r,this.minGallop=7,this.tmpStorageLength=r<512?r>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=r<120?5:r<1542?10:r<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||r>=7);if(m)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[m+c]=o[p+c],hp[m+c]=hp[p+c];return o[d]=a[u],void(hp[d]=s[u])}let{minGallop:h}=this;for(;;){let r=0,f=0,_=!1;do{if(i(a[u],o[l])<0){if(o[d]=o[l],hp[d]=hp[l],d--,l--,r++,f=0,0==--t){_=!0;break}}else if(o[d]=a[u],hp[d]=s[u],d--,u--,f++,r=0,1==--n){_=!0;break}}while((r|f)=0;c--)o[m+c]=o[p+c],hp[m+c]=hp[p+c];if(0===t){_=!0;break}}if(o[d]=a[u],hp[d]=s[u],d--,u--,1==--n){_=!0;break}if(f=n-vp(o[l],a,0,n,n-1,i),0!==f){for(d-=f,u-=f,n-=f,m=d+1,p=u+1,c=0;c=7||f>=7);if(_)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),1===n){for(d-=t,l-=t,m=d+1,p=l+1,c=t-1;c>=0;c--)o[m+c]=o[p+c],hp[m+c]=hp[p+c];o[d]=a[u],hp[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(p=d-(n-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=gp(e,r,n,t),sl&&(n=l),yp(e,r,r+n,r+s,t),s=n}c.pushRun(r,s),c.mergeRuns(),a-=s,r+=s}while(0!==a);return c.forceMergeRuns(),hp}};const kp=Object.prototype.hasOwnProperty;const Op=(e,t)=>kp.call(e,t),{isObject:Sp,isArray:Ap}=ep,Dp="before",Cp="before-all",Ep="after-all",Fp=[Dp,"after-prop","after-colon","after-value","after"],Bp=[Dp,Cp,Ep].map(Symbol.for),Mp=(e,t)=>Symbol.for(e+":"+t),jp=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0}),Tp=(e,t,r,n,i,o)=>{const a=Mp(i,n);if(!Op(t,a))return;const s=r===n?a:Mp(i,r);jp(e,s,t[a]),o&&delete t[a]},Ip=(e,t,r,n,i)=>{Fp.forEach((o=>{Tp(e,t,r,n,o,i)}))},Lp=(e,t)=>{Bp.forEach((r=>{const n=t[r];n&&jp(e,r,n)}))};var Pp={SYMBOL_PREFIXES:Fp,PREFIX_BEFORE:Dp,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Cp,PREFIX_AFTER_ALL:Ep,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Mp,define:jp,copy_comments:Ip,swap_comments:(e,t,r)=>{t!==r&&Fp.forEach((n=>{const i=Mp(n,r);if(!Op(e,i))return void Tp(e,e,r,t,n,!0);const o=e[i];delete e[i],Tp(e,e,r,t,n,!0),jp(e,Mp(n,t),o)}))},assign_non_prop_comments:Lp,assign(e,t,r){if(!Sp(e))throw new TypeError("Cannot convert undefined or null to object");if(!Sp(t))return e;if(undefined===r)r=Object.keys(t),Lp(e,t);else{if(!Ap(r))throw new TypeError("keys must be array or undefined");0===r.length&&Lp(e,t)}return((e,t,r)=>(r.forEach((r=>{Op(t,r)&&(e[r]=t[r],Ip(e,t,r,r))})),e))(e,t,r)}};const{isArray:Rp}=ep,{sort:zp}=wp,{SYMBOL_PREFIXES:Up,UNDEFINED:$p,symbol:Xp,copy_comments:Jp,swap_comments:qp}=Pp,Hp=(e,t,r,n,i)=>{Jp(e,t,r+n,r,i)},Wp=(e,t,r,n,i,o)=>{if(i>0){let a=n;for(;a-- >0;)Hp(e,t,r+a,i,o);return}let a=0;for(;a{Up.forEach((r=>{const n=Xp(r,t);delete e[n]}))};class Gp extends Array{splice(...e){const{length:t}=this,r=super.splice(...e);let[n,i,...o]=e;n<0&&(n+=t),i=1===arguments.length?t-n:Math.min(t-n,i);const{length:a}=o,s=n+i;return Wp(this,this,s,t-s,a-i,!0),r}slice(...e){const{length:t}=this,r=super.slice(...e);if(!r.length)return new Gp;let[n,i]=e;return i===$p?i=t:i<0&&(i+=t),n<0?n+=t:n===$p&&(n=0),Wp(r,this,n,i-n,-n),r}unshift(...e){const{length:t}=this,r=super.unshift(...e),{length:n}=e;return n>0&&Wp(this,this,0,t,n,!0),r}shift(){const e=super.shift(),{length:t}=this;return Zp(this,0),Wp(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let r=0;const n=t/2;for(;r{const n=t;t+=Rp(e)?e.length:1,e instanceof Gp&&Wp(r,e,0,e.length,n)})),r):r}sort(...e){const t=zp(this,...e.slice(0,1)),r=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const n=((e,t)=>{let r=t;for(;r in e;)r=e[r];return r})(r,e);n!==t&&(r[t]=n,qp(this,t,n))})),this}}var Kp={CommentArray:Gp};const Yp=Qd.exports,{CommentArray:Vp}=Kp,{PREFIX_BEFORE:Qp,PREFIX_AFTER_PROP:em,PREFIX_AFTER_COLON:tm,PREFIX_AFTER_VALUE:rm,PREFIX_AFTER:nm,PREFIX_BEFORE_ALL:im,PREFIX_AFTER_ALL:om,BRACKET_OPEN:am,BRACKET_CLOSE:sm,CURLY_BRACKET_OPEN:cm,CURLY_BRACKET_CLOSE:lm,COLON:um,COMMA:dm,MINUS:pm,EMPTY:mm,UNDEFINED:hm,define:fm,assign_non_prop_comments:_m}=Pp,gm=e=>Yp.tokenize(e,{comment:!0,loc:!0}),bm=[];let ym=null,vm=null;const xm=[];let Nm,wm,km=!1,Om=!1,Sm=null,Am=null,Dm=null,Cm=null;const Em=()=>{xm.length=bm.length=0,Am=null,Nm=hm},Fm=e=>Symbol.for(Nm!==hm?e+um+Nm:e),Bm=(e,t)=>Cm?Cm(e,t):t,Mm=()=>{const e=new SyntaxError(`Unexpected token ${Dm.value.slice(0,1)}`);throw Object.assign(e,Dm.loc.start),e},jm=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,Am?Am.loc.end:{line:1,column:0}),e},Tm=()=>{const e=Sm[++wm];Om=Dm&&e&&Dm.loc.end.line===e.loc.start.line||!1,Am=Dm,Dm=e},Im=()=>(Dm||jm(),"Punctuator"===Dm.type?Dm.value:Dm.type),Lm=e=>Im()===e,Pm=e=>{Lm(e)||Mm()},Rm=e=>{bm.push(ym),ym=e},zm=()=>{ym=bm.pop()},Um=()=>{if(!vm)return;const e=[];for(const r of vm){if(!r.inline)break;e.push(r)}const{length:t}=e;t&&(t===vm.length?vm=null:vm.splice(0,t),fm(ym,Fm(nm),e))},$m=e=>{vm&&(fm(ym,Fm(e),vm),vm=null)},Xm=e=>{const t=[];for(;Dm&&(Lm("LineComment")||Lm("BlockComment"));){const e=c(s({},Dm),{inline:Om});t.push(e),Tm()}km||t.length&&(e?fm(ym,Fm(e),t):vm=t)},Jm=(e,t)=>{t&&xm.push(Nm),Nm=e},qm=()=>{Nm=xm.pop()};function Hm(){let e=Im();if(e===cm)return Tm(),(()=>{const e={};Rm(e),Jm(hm,!0);let t,r=!1;for(Xm();!(Lm(lm)||r&&($m(rm),Pm(dm),Tm(),Xm(),Um(),Lm(lm)));)r=!0,Pm("String"),t=JSON.parse(Dm.value),Jm(t),$m(Qp),Tm(),Xm(em),Pm(um),Tm(),Xm(tm),e[t]=Bm(t,Hm()),Xm();return r&&$m(nm),Tm(),Nm=void 0,r||$m(Qp),zm(),qm(),e})();if(e===am)return Tm(),(()=>{const e=new Vp;Rm(e),Jm(hm,!0);let t=!1,r=0;for(Xm();!(Lm(sm)||t&&($m(rm),Pm(dm),Tm(),Xm(),Um(),Lm(sm)));)t=!0,Jm(r),$m(Qp),e[r]=Bm(r,Hm()),r++,Xm();return t&&$m(nm),Tm(),Nm=void 0,t||$m(Qp),zm(),qm(),e})();let t,r=mm;switch(e===pm&&(Tm(),e=Im(),r=pm),e){case"String":case"Boolean":case"Null":case"Numeric":return t=Dm.value,Tm(),JSON.parse(r+t)}}var Wm,Zm={parse:(e,t,r)=>{Em(),Sm=gm(e),Cm=t,km=r,Sm.length||jm(),wm=-1,Tm(),Rm({}),Xm(im);let n=Hm();var i;return Xm(om),Dm&&Mm(),r||null===n||(i=n,Object(i)!==i&&(n=new Object(n)),_m(n,ym)),zm(),n=Bm("",n),Em(),Sm.length=0,vm=ym=Sm=Am=Dm=Cm=null,n},tokenize:gm},Gm="",Km=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var r=e.length*t;if(Wm!==e||void 0===Wm)Wm=e,Gm="";else if(Gm.length>=r)return Gm.substr(0,r);for(;r>Gm.length&&t>1;)1&t&&(Gm+=e),t>>=1,e+=e;return Gm=(Gm+=e).substr(0,r)}; -/*! - * repeat-string - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */const{isArray:Ym,isObject:Vm,isFunction:Qm,isNumber:eh,isString:th}=ep,rh=Km,{PREFIX_BEFORE_ALL:nh,PREFIX_BEFORE:ih,PREFIX_AFTER_PROP:oh,PREFIX_AFTER_COLON:ah,PREFIX_AFTER_VALUE:sh,PREFIX_AFTER:ch,PREFIX_AFTER_ALL:lh,BRACKET_OPEN:uh,BRACKET_CLOSE:dh,CURLY_BRACKET_OPEN:ph,CURLY_BRACKET_CLOSE:mh,COLON:hh,COMMA:fh,EMPTY:_h,UNDEFINED:gh}=Pp,bh=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,yh=e=>`${ih}:${e}`,vh=e=>`${sh}:${e}`,xh=e=>`${ch}:${e}`,Nh={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},wh=e=>`"${(e=>(bh.lastIndex=0,bh.test(e)?e.replace(bh,(e=>{const t=Nh[e];return"string"==typeof t?t:e})):e))(e)}"`,kh=(e,t,r,n)=>{const i=e[Symbol.for(t)];if(!i||!i.length)return _h;let o=!1;const a=i.reduce(((e,{inline:t,type:n,value:i})=>(o="LineComment"===n,e+(t?" ":"\n"+r)+((e,t)=>t?`//${e}`:`/*${e}*/`)(i,o))),_h);return n||o?a+"\n"+r:a};let Oh=null,Sh=_h;const Ah=(e,t,r)=>e?t?e+t.trim()+"\n"+r:e.trimRight()+"\n"+r:t?t.trimRight()+"\n"+r:_h,Dh=(e,t,r)=>{const n=kh(t,ih,r+Sh,!0);return Ah(n,e,r)},Ch=(e,t)=>{if(!e)return"null";const r=t+Sh;let n=_h,i=_h,o=!0;return(Ym(Oh)?Oh:Object.keys(e)).forEach((t=>{const a=Eh(t,e,r);if(a===gh)return;o||(n+=fh),o=!1;const s=Ah(i,kh(e,yh(t),r),r);n+=s||"\n"+r,n+=wh(t)+kh(e,`${oh}:${t}`,r)+hh+kh(e,(e=>`${ah}:${e}`)(t),r)+" "+a+kh(e,vh(t),r),i=kh(e,xh(t),r)})),n+=Ah(i,kh(e,ch,r),r),ph+Dh(n,e,t)+mh};function Eh(e,t,r){let n=t[e];switch(Vm(n)&&Qm(n.toJSON)&&(n=n.toJSON(e)),Qm(Oh)&&(n=Oh.call(t,e,n)),typeof n){case"string":return wh(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return Ym(n)?((e,t)=>{const r=t+Sh,{length:n}=e;let i=_h,o=_h;for(let a=0;a{const n=(e=>th(e)?e:eh(e)?rh(" ",e):_h)(r);if(!n)return JSON.stringify(e,t);Qm(t)||Ym(t)||(t=null),Oh=t,Sh=n;const i=(e=>{if("object"!=typeof e)return!1;const t=Fh.call(e);return Bh.includes(t)})(e)?JSON.stringify(e):Eh("",{"":e},_h);return Oh=null,Sh=_h,Vm(e)?kh(e,nh,_h).trimLeft()+i+kh(e,lh,_h).trimRight():i},{CommentArray:Ih}=Kp,{assign:Lh}=Pp;var Ph={parse:Mh,stringify:Th,tokenize:jh,CommentArray:Ih,assign:Lh},Rh={},zh={},Uh={};function $h(e){return null==e}function Xh(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Uh.isNothing=$h,Uh.isObject=function(e){return"object"==typeof e&&null!==e},Uh.toArray=function(e){return Array.isArray(e)?e:$h(e)?[]:[e]},Uh.repeat=function(e,t){var r,n="";for(r=0;r0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){r=" ... ",n+=5;break}for(i="",o=this.position;ot/2-1){i=" ... ",o-=5;break}return a=this.buffer.slice(n,o),qh.repeat(" ",e)+r+a+i+"\n"+qh.repeat(" ",e+this.position-n+r.length)+"^"},Hh.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r};var Wh=Hh,Zh=Jh,Gh=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Kh=["scalar","sequence","mapping"];var Yh=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Gh.indexOf(t))throw new Zh('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){n[String(t)]=e}))})),n),-1===Kh.indexOf(this.kind))throw new Zh('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},Vh=Uh,Qh=Jh,ef=Yh;function tf(e,t,r){var n=[];return e.include.forEach((function(e){r=tf(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function rf(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new Qh("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=tf(this,"implicit",[]),this.compiledExplicit=tf(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),pf=Uh,mf=Yh,hf=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var ff=/^[-+]?[0-9]+e/;var _f=new nf({include:[of],implicit:[af,sf,df,new mf("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!hf.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||pf.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(pf.isNegativeZero(e))return"-0.0";return r=e.toString(10),ff.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})]}),gf=new nf({include:[_f]}),bf=Yh,yf=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),vf=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var xf=new bf("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==yf.exec(e)||null!==vf.exec(e))},construct:function(e){var t,r,n,i,o,a,s,c,l=0,u=null;if(null===(t=yf.exec(e))&&(t=vf.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(r,n,i));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(r,n,i,o,a,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var Nf,wf=new Yh("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var kf=require;Nf=kf("buffer").Buffer}catch(hb){}var Of="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Sf=new Yh("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,o=Of;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,n=e.replace(/[\r\n=]/g,""),i=n.length,o=Of,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(n.charAt(t));return 0===(r=i%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===r?(s.push(a>>10&255),s.push(a>>2&255)):12===r&&s.push(a>>4&255),Nf?Nf.from?Nf.from(s):new Nf(s):s},predicate:function(e){return Nf&&Nf.isBuffer(e)},represent:function(e){var t,r,n="",i=0,o=e.length,a=Of;for(t=0;t>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]),i=(i<<8)+e[t];return 0===(r=o%3)?(n+=a[i>>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]):2===r?(n+=a[i>>10&63],n+=a[i>>4&63],n+=a[i<<2&63],n+=a[64]):1===r&&(n+=a[i>>2&63],n+=a[i<<4&63],n+=a[64],n+=a[64]),n}}),Af=Yh,Df=Object.prototype.hasOwnProperty,Cf=Object.prototype.toString;var Ef=new Af("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,i,o,a=[],s=e;for(t=0,r=s.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var zf=require;Pf=zf("esprima")}catch(fb){"undefined"!=typeof window&&(Pf=window.esprima)}var Uf=new Yh("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=Pf.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,r="("+e+")",n=Pf.parse(r,{range:!0}),i=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){i.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(i,r.slice(t[0]+1,t[1]-1)):new Function(i,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),$f=nf,Xf=$f.DEFAULT=new $f({include:[If],explicit:[Lf,Rf,Uf]}),Jf=Uh,qf=Jh,Hf=Wh,Wf=If,Zf=Xf,Gf=Object.prototype.hasOwnProperty,Kf=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Yf=/[\x85\u2028\u2029]/,Vf=/[,\[\]\{\}]/,Qf=/^(?:!|!!|![a-z\-]+!)$/i,e_=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function t_(e){return Object.prototype.toString.call(e)}function r_(e){return 10===e||13===e}function n_(e){return 9===e||32===e}function i_(e){return 9===e||32===e||10===e||13===e}function o_(e){return 44===e||91===e||93===e||123===e||125===e}function a_(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function s_(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function c_(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var l_=new Array(256),u_=new Array(256),d_=0;d_<256;d_++)l_[d_]=s_(d_)?1:0,u_[d_]=s_(d_);function p_(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Zf,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function m_(e,t){return new qf(t,new Hf(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function h_(e,t){throw m_(e,t)}function f_(e,t){e.onWarning&&e.onWarning.call(null,m_(e,t))}var __={YAML:function(e,t,r){var n,i,o;null!==e.version&&h_(e,"duplication of %YAML directive"),1!==r.length&&h_(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&h_(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&h_(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&f_(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&h_(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],Qf.test(n)||h_(e,"ill-formed tag handle (first argument) of the TAG directive"),Gf.call(e.tagMap,n)&&h_(e,'there is a previously declared suffix for "'+n+'" tag handle'),e_.test(i)||h_(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function g_(e,t,r,n){var i,o,a,s;if(t1&&(e.result+=Jf.repeat("\n",t-1))}function k_(e,t){var r,n,i=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),n=e.input.charCodeAt(e.position);0!==n&&45===n&&i_(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,x_(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,A_(e,t,3,!1,!0),a.push(e.result),x_(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)h_(e,"bad indentation of a sequence entry");else if(e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt?m=1:e.lineIndent===t?m=0:e.lineIndentt)&&(A_(e,t,4,!0,i)&&(f?m=e.result:h=e.result),f||(y_(e,u,d,p,m,h,o,a),p=m=h=null),x_(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)h_(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?h_(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?h_(e,"repeat of an indentation width identifier"):(u=t+i-1,l=!0)}if(n_(o)){do{o=e.input.charCodeAt(++e.position)}while(n_(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!r_(o)&&0!==o)}for(;0!==o;){for(v_(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),r_(o))d++;else{if(e.lineIndent0){for(i=a,o=0;i>0;i--)(a=a_(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:h_(e,"expected hexadecimal character");e.result+=c_(o),e.position++}else h_(e,"unknown escape sequence");r=n=e.position}else r_(s)?(g_(e,r,n,!0),w_(e,x_(e,!1,t)),r=n=e.position):e.position===e.lineStart&&N_(e)?h_(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}h_(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?f=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!i_(n)&&!o_(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&h_(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Gf.call(e.anchorMap,r)||h_(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],x_(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,a,s,c,l,u,d=e.kind,p=e.result;if(i_(u=e.input.charCodeAt(e.position))||o_(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(i_(n=e.input.charCodeAt(e.position+1))||r&&o_(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,a=!1;0!==u;){if(58===u){if(i_(n=e.input.charCodeAt(e.position+1))||r&&o_(n))break}else if(35===u){if(i_(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&N_(e)||r&&o_(u))break;if(r_(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,x_(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(g_(e,i,o,!1),w_(e,e.line-s),i=o=e.position,a=!1),n_(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return g_(e,i,o,!1),!!e.result||(e.kind=d,e.result=p,!1)}(e,d,1===r)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||h_(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&k_(e,p))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&h_(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):h_(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):h_(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function D_(e){var t,r,n,i,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(x_(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(a=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!i_(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&h_(e,"directive name must not be less than one character in length");0!==i;){for(;n_(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!r_(i));break}if(r_(i))break;for(t=e.position;0!==i&&!i_(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&v_(e),Gf.call(__,r)?__[r](e,r,n):f_(e,'unknown document directive "'+r+'"')}x_(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,x_(e,!0,-1)):a&&h_(e,"directives end mark is expected"),A_(e,e.lineIndent-1,4,!1,!0),x_(e,!0,-1),e.checkLineBreaks&&Yf.test(e.input.slice(o,e.position))&&f_(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&N_(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,x_(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,m=m&&W_(a,s)}else{for(o=0;on&&" "!==e[p+1],p=o);else if(!H_(a))return 5;s=o>0?e.charCodeAt(o-1):null,m=m&&W_(a,s)}u=u||d&&o-p-1>n&&" "!==e[p+1]}return l||u?r>9&&Z_(e)?5:u?4:3:m&&!i(e)?1:2}function K_(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==z_.indexOf(t))return"'"+t+"'";var i=e.indent*Math.max(1,r),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),a=n||e.flowLevel>-1&&r>=e.flowLevel;switch(G_(t,a,e.indent,o,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+Y_(t,e.indent)+V_(X_(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,Q_(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;n=i.exec(e);){var c=n[1],l=n[2];r=" "===l[0],o+=c+(a||r||""===l?"":"\n")+Q_(l,t),a=r}return o}(t,o),i));case 5:return'"'+function(e){for(var t,r,n,i="",o=0;o=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=U_(1024*(t-55296)+r-56320+65536),o++):i+=!(n=R_[t])&&H_(t)?e[o]:n||U_(t);return i}(t)+'"';default:throw new j_("impossible error: invalid scalar style")}}()}function Y_(e,t){var r=Z_(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function V_(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Q_(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,a=0,s=0,c="";r=i.exec(e);)(s=r.index)-o>t&&(n=a>o?a:s,c+="\n"+e.slice(o,n),o=n+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function eg(e,t,r){var n,i,o,a,s,c;for(o=0,a=(i=r?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function tg(e,t,r,n,i,o){e.tag=null,e.dump=r,eg(e,r,!1)||eg(e,r,!0);var a=L_.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(i=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var i,o,a,s,c,l,u="",d=e.tag,p=Object.keys(r);if(!0===e.sortKeys)p.sort();else if("function"==typeof e.sortKeys)p.sort(e.sortKeys);else if(e.sortKeys)throw new j_("sortKeys must be a boolean or a function");for(i=0,o=p.length;i1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=J_(e,t)),tg(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",u+=l+=e.dump));e.tag=d,e.dump=u||"{}"}(e,t,e.dump,i),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,r){var n,i,o,a,s,c="",l=e.tag,u=Object.keys(r);for(n=0,i=u.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),tg(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,a="",s=e.tag;for(i=0,o=r.length;i "+e.dump)}return!0}function rg(e,t){var r,n,i=[],o=[];for(ng(e,i,o),r=0,n=o.length;r3;)r.pop()();if(r[1]=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,r.ctx.currentTime);for(var n=0;n=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,u()),e},codecs:function(e){return(this||r)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||r;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||r,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(u){return e}if(!t||"function"!=typeof t.canPlayType)return e;var n=t.canPlayType("audio/mpeg;").replace(/^no$/,""),i=e._navigator?e._navigator.userAgent:"",o=i.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==i.indexOf("Safari")&&-1===i.indexOf("Chrome"),c=i.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!n&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!n,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||r;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(r){for(;e._html5AudioPool.length0?s._seek:n._sprite[e][0]/1e3),u=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-l),d=1e3*u/Math.abs(s._rate),p=n._sprite[e][0]/1e3,m=(n._sprite[e][0]+n._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var h=function(){s._paused=!1,s._seek=l,s._start=p,s._stop=m,s._loop=!(!s._loop&&!n._sprite[e][2])};if(!(l>=m)){var f=s._node;if(n._webAudio){var _=function(){n._playLock=!1,h(),n._refreshBuffer(s);var e=s._muted||n._muted?0:s._volume;f.gain.setValueAtTime(e,r.ctx.currentTime),s._playStart=r.ctx.currentTime,void 0===f.bufferSource.start?s._loop?f.bufferSource.noteGrainOn(0,l,86400):f.bufferSource.noteGrainOn(0,l,u):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,u),d!==1/0&&(n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d)),t||setTimeout((function(){n._emit("play",s._id),n._loadQueue()}),0)};"running"===r.state&&"interrupted"!==r.ctx.state?_():(n._playLock=!0,n.once("resume",_),n._clearTimer(s._id))}else{var g=function(){f.currentTime=l,f.muted=s._muted||n._muted||r._muted||f.muted,f.volume=s._volume*r.volume(),f.playbackRate=s._rate;try{var i=f.play();if(i&&"undefined"!=typeof Promise&&(i instanceof Promise||"function"==typeof i.then)?(n._playLock=!0,h(),i.then((function(){n._playLock=!1,f._unlocked=!0,t?n._loadQueue():n._emit("play",s._id)})).catch((function(){n._playLock=!1,n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(n._playLock=!1,h(),n._emit("play",s._id)),f.playbackRate=s._rate,f.paused)return void n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d):(n._endTimers[s._id]=function(){n._ended(s),f.removeEventListener("ended",n._endTimers[s._id],!1)},f.addEventListener("ended",n._endTimers[s._id],!1))}catch(o){n._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===f.src&&(f.src=n._src,f.load());var b=window&&window.ejecta||!f.readyState&&r._navigator.isCocoonJS;if(f.readyState>=3||b)g();else{n._playLock=!0,n._state="loading";var y=function(){n._state="loaded",g(),f.removeEventListener(r._canPlayEvent,y,!1)};f.addEventListener(r._canPlayEvent,y,!1),n._clearTimer(s._id)}}return s._id}n._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var r=t._getSoundIds(e),n=0;n=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(n=t?i._soundById(t):i._sounds[0])?n._volume:0;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"volume",action:function(){i.volume.apply(i,o)}}),i;void 0===t&&(i._volume=e),t=i._getSoundIds(t);for(var c=0;c0?n/l:n),d=Date.now();e._fadeTo=r,e._interval=setInterval((function(){var i=(Date.now()-d)/n;d=Date.now(),s+=c*i,s=Math.round(100*s)/100,s=c<0?Math.max(r,s):Math.min(r,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(rt&&s>=r)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(r,e._id),a._emit("fade",e._id))}),u)},_stopFade:function(e){var t=this,n=t._soundById(e);return n&&n._interval&&(t._webAudio&&n._node.gain.cancelScheduledValues(r.ctx.currentTime),clearInterval(n._interval),n._interval=null,t.volume(n._fadeTo,e),n._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,r,n=this,i=arguments;if(0===i.length)return n._loop;if(1===i.length){if("boolean"!=typeof i[0])return!!(r=n._soundById(parseInt(i[0],10)))&&r._loop;e=i[0],n._loop=e}else 2===i.length&&(e=i[0],t=parseInt(i[1],10));for(var o=n._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(n=i._soundById(t))?n._rate:i._rate;if("loaded"!==i._state||i._playLock)return i._queue.push({event:"rate",action:function(){i.rate.apply(i,o)}}),i;void 0===t&&(i._rate=e),t=i._getSoundIds(t);for(var c=0;c=0?t=parseInt(i[0],10):n._sounds.length&&(t=n._sounds[0]._id,e=parseFloat(i[0]))}else 2===i.length&&(e=parseFloat(i[0]),t=parseInt(i[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==n._state||n._playLock))return n._queue.push({event:"seek",action:function(){n.seek.apply(n,i)}}),n;var s=n._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(n._webAudio){var c=n.playing(t)?r.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var u=n.playing(t);u&&n.pause(t,!0),s._seek=e,s._ended=!1,n._clearTimer(t),n._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var d=function(){u&&n.play(t,!0),n._emit("seek",t)};if(u&&!n._webAudio){var p=function(){n._playLock?setTimeout(p,0):d()};setTimeout(p,0)}else d()}return n},playing:function(e){var t=this;if("number"==typeof e){var r=t._soundById(e);return!!r&&!r._paused}for(var n=0;n=0&&r._howls.splice(i,1);var a=!0;for(n=0;n=0){a=!1;break}return o&&a&&delete o[e._src],r.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,r,n){var i=this["_on"+e];return"function"==typeof t&&i.push(n?{id:r,fn:t,once:n}:{id:r,fn:t}),this},off:function(e,t,r){var n=this,i=n["_on"+e],o=0;if("number"==typeof t&&(r=t,t=null),t||r)for(o=0;o=0;o--)i[o].id&&i[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,r)}.bind(n,i[o].fn),0),i[o].once&&n.off(e,i[o].fn,i[o].id));return n._loadQueue(e),n},_loadQueue:function(e){var t=this;if(t._queue.length>0){var r=t._queue[0];r.event===e&&(t._queue.shift(),t._loadQueue()),e||r.action()}return t},_ended:function(e){var t=this,n=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;n--){if(r<=t)return;e._sounds[n]._ended&&(e._webAudio&&e._sounds[n]._node&&e._sounds[n]._node.disconnect(0),e._sounds.splice(n,1),r--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],r=0;r=0;if(r._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=r._scratchBuffer}catch(n){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(r._navigator&&r._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var i=function(e){this._parent=e,this.init()};i.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,n=r._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===r.ctx.createGain?r.ctx.createGainNode():r.ctx.createGain(),e._node.gain.setValueAtTime(n,r.ctx.currentTime),e._node.paused=!0,e._node.connect(r.masterGain)):r.noAudio||(e._node=r._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(r._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=n*r.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++r._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(r._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var r=atob(t.split(",")[1]),n=new Uint8Array(r.length),i=0;i0?(o[t._src]=e,l(t,e)):n()};"undefined"!=typeof Promise&&1===r.ctx.decodeAudioData.length?r.ctx.decodeAudioData(e).then(i).catch(n):r.ctx.decodeAudioData(e,i,n)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},u=function(){if(r.usingWebAudio){try{"undefined"!=typeof AudioContext?r.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?r.ctx=new webkitAudioContext:r.usingWebAudio=!1}catch(o){r.usingWebAudio=!1}r.ctx||(r.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(r._navigator&&r._navigator.platform),t=r._navigator&&r._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=t?parseInt(t[1],10):null;if(e&&n&&n<9){var i=/safari/.test(r._navigator&&r._navigator.userAgent.toLowerCase());r._navigator&&!i&&(r.usingWebAudio=!1)}r.usingWebAudio&&(r.masterGain=void 0===r.ctx.createGain?r.ctx.createGainNode():r.ctx.createGain(),r.masterGain.gain.setValueAtTime(r._muted?0:r._volume,r.ctx.currentTime),r.masterGain.connect(r.ctx.destination)),r._setup()}};e.Howler=r,e.Howl=n,void 0!==Te?(Te.HowlerGlobal=t,Te.Howler=r,Te.Howl=n,Te.Sound=i):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=r,window.Howl=n,window.Sound=i)}(), -/*! - * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. - * - * howler.js v2.2.3 - * howlerjs.com - * - * (c) 2013-2020, James Simpson of GoldFire Studios - * goldfirestudios.com - * - * MIT License - */ -function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var r=t._howls.length-1;r>=0;r--)t._howls[r].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,r){var n=this;return n.ctx&&n.ctx.listener?(t="number"!=typeof t?n._pos[1]:t,r="number"!=typeof r?n._pos[2]:r,"number"!=typeof e?n._pos:(n._pos=[e,t,r],void 0!==n.ctx.listener.positionX?(n.ctx.listener.positionX.setTargetAtTime(n._pos[0],Howler.ctx.currentTime,.1),n.ctx.listener.positionY.setTargetAtTime(n._pos[1],Howler.ctx.currentTime,.1),n.ctx.listener.positionZ.setTargetAtTime(n._pos[2],Howler.ctx.currentTime,.1)):n.ctx.listener.setPosition(n._pos[0],n._pos[1],n._pos[2]),n)):n},HowlerGlobal.prototype.orientation=function(e,t,r,n,i,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,r="number"!=typeof r?s[2]:r,n="number"!=typeof n?s[3]:n,i="number"!=typeof i?s[4]:i,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,r,n,i,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,r,n,i,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var r=this;return r._orientation=t.orientation||[1,0,0],r._stereo=t.stereo||null,r._pos=t.pos||null,r._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},r._onstereo=t.onstereo?[{fn:t.onstereo}]:[],r._onpos=t.onpos?[{fn:t.onpos}]:[],r._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,r){var n=this;if(!n._webAudio)return n;if("loaded"!==n._state)return n._queue.push({event:"stereo",action:function(){n.stereo(e,r)}}),n;var i=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===r){if("number"!=typeof e)return n._stereo;n._stereo=e,n._pos=[e,0,0]}for(var o=n._getSoundIds(r),a=0;a"']/,Mg=/[&<>"']/g,jg=/[<>"']|&(?!#?\w+;)/,Tg=/[<>"']|&(?!#?\w+;)/g,Ig={"&":"&","<":"<",">":">",'"':""","'":"'"},Lg=e=>Ig[e];function Pg(e,t){if(t){if(Bg.test(e))return e.replace(Mg,Lg)}else if(jg.test(e))return e.replace(Tg,Lg);return e}const Rg=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function zg(e){return e.replace(Rg,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const Ug=/(^|[^\[])\^/g;function $g(e,t){e=e.source||e,t=t||"";const r={replace:(t,n)=>(n=(n=n.source||n).replace(Ug,"$1"),e=e.replace(t,n),r),getRegex:()=>new RegExp(e,t)};return r}const Xg=/[^\w:]/g,Jg=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function qg(e,t,r){if(e){let e;try{e=decodeURIComponent(zg(r)).replace(Xg,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!Jg.test(r)&&(r=function(e,t){Hg[" "+e]||(Wg.test(e)?Hg[" "+e]=e+"/":Hg[" "+e]=Qg(e,"/",!0));const r=-1===(e=Hg[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(Zg,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(Gg,"$1")+t:e+t}(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(n){return null}return r}const Hg={},Wg=/^[^:]+:\/*[^/]*$/,Zg=/^([^:]+:)[\s\S]*$/,Gg=/^([^:]+:\/*[^/]*)[\s\S]*$/;const Kg={exec:function(){}};function Yg(e){let t,r,n=1;for(;n{let n=!1,i=t;for(;--i>=0&&"\\"===r[i];)n=!n;return n?"|":" |"})).split(/ \|/);let n=0;if(r[0].trim()||r.shift(),r[r.length-1].trim()||r.pop(),r.length>t)r.splice(t);else for(;r.length1;)1&t&&(r+=e),t>>=1,e+=e;return r+e}function rb(e,t,r,n){const i=t.href,o=t.title?Pg(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;const e={type:"link",raw:r,href:i,title:o,text:a,tokens:n.inlineTokens(a,[])};return n.state.inLink=!1,e}return{type:"image",raw:r,href:i,title:o,text:Pg(a)}}class nb{constructor(e){this.options=e||Fg}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Qg(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],r=function(e,t){const r=e.match(/^(\s+)(?:```)/);if(null===r)return t;const n=r[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[r]=t;return r.length>=n.length?e.slice(n.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:r}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=Qg(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const r={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r,n,i,o,a,s,c,l,u,d,p,m,h=t[1].trim();const f=h.length>1,_={type:"list",raw:"",ordered:f,start:f?+h.slice(0,-1):"",loose:!1,items:[]};h=f?`\\d{1,9}\\${h.slice(-1)}`:`\\${h}`,this.options.pedantic&&(h=f?h:"[*+-]");const g=new RegExp(`^( {0,3}${h})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(m=!1,t=g.exec(e))&&!this.rules.block.hr.test(e);){if(r=t[0],e=e.substring(r.length),l=t[2].split("\n",1)[0],u=e.split("\n",1)[0],this.options.pedantic?(o=2,p=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,p=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(r+=u+"\n",e=e.substring(u.length+1),m=!0),!m){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(d=e.split("\n",1)[0],l=d,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())p+="\n"+l.slice(o);else{if(s)break;p+="\n"+l}s||l.trim()||(s=!0),r+=d+"\n",e=e.substring(d.length+1)}}_.loose||(c?_.loose=!0:/\n *\n *$/.test(r)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(p),n&&(i="[ ] "!==n[0],p=p.replace(/^\[[ xX]\] +/,""))),_.items.push({type:"list_item",raw:r,task:!!n,checked:i,loose:!1,text:p}),_.raw+=r}_.items[_.items.length-1].raw=r.trimRight(),_.items[_.items.length-1].text=p.trimRight(),_.raw=_.raw.trimRight();const b=_.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let r=0;for(const n of t)if("\n"===n&&(r+=1),r>1)return!0;return!1}));!_.loose&&e.length&&t&&(_.loose=!0,_.items[a].loose=!0)}return _}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):Pg(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:Vg(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let r,n,i,o,a=e.align.length;for(r=0;r({text:e})));for(a=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Pg(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=Qg(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const r=e.length;let n=0,i=0;for(;i-1){const r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),/^$/.test(e)?r.slice(1):r.slice(1,-1)),rb(t,{href:r?r.replace(this.rules.inline._escapes,"$1"):r,title:n?n.replace(this.rules.inline._escapes,"$1"):n},t[0],this.lexer)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=(r[2]||r[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return rb(r,e,r[0],this.lexer)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrong.lDelim.exec(e);if(!n)return;if(n[3]&&r.match(/[\p{L}\p{N}]/u))return;const i=n[1]||n[2]||"";if(!i||i&&(""===r||this.rules.inline.punctuation.exec(r))){const r=n[0].length-1;let i,o,a=r,s=0;const c="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+r);null!=(n=c.exec(t));){if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!i)continue;if(o=i.length,n[3]||n[4]){a+=o;continue}if((n[5]||n[6])&&r%3&&!((r+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(r,o)%2){const t=e.slice(1,r+n.index+o);return{type:"em",raw:e.slice(0,r+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,r+n.index+o-1);return{type:"strong",raw:e.slice(0,r+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const r=/[^ ]/.test(e),n=/^ /.test(e)&&/ $/.test(e);return r&&n&&(e=e.substring(1,e.length-1)),e=Pg(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const r=this.rules.inline.autolink.exec(e);if(r){let e,n;return"@"===r[2]?(e=Pg(this.options.mangle?t(r[1]):r[1]),n="mailto:"+e):(e=Pg(r[1]),n=e),{type:"link",raw:r[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let r;if(r=this.rules.inline.url.exec(e)){let e,n;if("@"===r[2])e=Pg(this.options.mangle?t(r[0]):r[0]),n="mailto:"+e;else{let t;do{t=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0]}while(t!==r[0]);e=Pg(r[0]),n="www."===r[1]?"http://"+e:e}return{type:"link",raw:r[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const r=this.rules.inline.text.exec(e);if(r){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):Pg(r[0]):r[0]:Pg(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:e}}}}const ib={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Kg,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};ib.def=$g(ib.def).replace("label",ib._label).replace("title",ib._title).getRegex(),ib.bullet=/(?:[*+-]|\d{1,9}[.)])/,ib.listItemStart=$g(/^( *)(bull) */).replace("bull",ib.bullet).getRegex(),ib.list=$g(ib.list).replace(/bull/g,ib.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ib.def.source+")").getRegex(),ib._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ib._comment=/|$)/,ib.html=$g(ib.html,"i").replace("comment",ib._comment).replace("tag",ib._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ib.paragraph=$g(ib._paragraph).replace("hr",ib.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ib._tag).getRegex(),ib.blockquote=$g(ib.blockquote).replace("paragraph",ib.paragraph).getRegex(),ib.normal=Yg({},ib),ib.gfm=Yg({},ib.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),ib.gfm.table=$g(ib.gfm.table).replace("hr",ib.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ib._tag).getRegex(),ib.gfm.paragraph=$g(ib._paragraph).replace("hr",ib.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ib.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ib._tag).getRegex(),ib.pedantic=Yg({},ib.normal,{html:$g("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ib._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Kg,paragraph:$g(ib.normal._paragraph).replace("hr",ib.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ib.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const ob={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Kg,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Kg,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}ob._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",ob.punctuation=$g(ob.punctuation).replace(/punctuation/g,ob._punctuation).getRegex(),ob.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,ob.escapedEmSt=/\\\*|\\_/g,ob._comment=$g(ib._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),ob.emStrong.lDelim=$g(ob.emStrong.lDelim).replace(/punct/g,ob._punctuation).getRegex(),ob.emStrong.rDelimAst=$g(ob.emStrong.rDelimAst,"g").replace(/punct/g,ob._punctuation).getRegex(),ob.emStrong.rDelimUnd=$g(ob.emStrong.rDelimUnd,"g").replace(/punct/g,ob._punctuation).getRegex(),ob._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,ob._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,ob._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,ob.autolink=$g(ob.autolink).replace("scheme",ob._scheme).replace("email",ob._email).getRegex(),ob._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,ob.tag=$g(ob.tag).replace("comment",ob._comment).replace("attribute",ob._attribute).getRegex(),ob._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,ob._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,ob._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,ob.link=$g(ob.link).replace("label",ob._label).replace("href",ob._href).replace("title",ob._title).getRegex(),ob.reflink=$g(ob.reflink).replace("label",ob._label).replace("ref",ib._label).getRegex(),ob.nolink=$g(ob.nolink).replace("ref",ib._label).getRegex(),ob.reflinkSearch=$g(ob.reflinkSearch,"g").replace("reflink",ob.reflink).replace("nolink",ob.nolink).getRegex(),ob.normal=Yg({},ob),ob.pedantic=Yg({},ob.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:$g(/^!?\[(label)\]\((.*?)\)/).replace("label",ob._label).getRegex(),reflink:$g(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ob._label).getRegex()}),ob.gfm=Yg({},ob.normal,{escape:$g(ob.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))))if(r=this.tokenizer.space(e))e=e.substring(r.raw.length),1===r.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(r);else if(r=this.tokenizer.code(e))e=e.substring(r.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?t.push(r):(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(r=this.tokenizer.fences(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.heading(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.hr(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.blockquote(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.list(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.html(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.def(e))e=e.substring(r.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title}):(n.raw+="\n"+r.raw,n.text+="\n"+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(r=this.tokenizer.table(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.lheading(e))e=e.substring(r.raw.length),t.push(r);else{if(i=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const r=e.slice(1);let n;this.options.extensions.startBlock.forEach((function(e){n=e.call({lexer:this},r),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i)))n=t[t.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(r),o=i.length!==e.length,e=e.substring(r.raw.length);else if(r=this.tokenizer.text(e))e=e.substring(r.raw.length),n=t[t.length-1],n&&"text"===n.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(r);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let r,n,i,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+tb("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+tb("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0)))))if(r=this.tokenizer.escape(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.tag(e))e=e.substring(r.raw.length),n=t[t.length-1],n&&"text"===r.type&&"text"===n.type?(n.raw+=r.raw,n.text+=r.text):t.push(r);else if(r=this.tokenizer.link(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(r.raw.length),n=t[t.length-1],n&&"text"===r.type&&"text"===n.type?(n.raw+=r.raw,n.text+=r.text):t.push(r);else if(r=this.tokenizer.emStrong(e,c,s))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.codespan(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.br(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.del(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.autolink(e,sb))e=e.substring(r.raw.length),t.push(r);else if(this.state.inLink||!(r=this.tokenizer.url(e,sb))){if(i=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const r=e.slice(1);let n;this.options.extensions.startInline.forEach((function(e){n=e.call({lexer:this},r),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(i,ab))e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(s=r.raw.slice(-1)),a=!0,n=t[t.length-1],n&&"text"===n.type?(n.raw+=r.raw,n.text+=r.text):t.push(r);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(r.raw.length),t.push(r);return t}}class lb{constructor(e){this.options=e||Fg}code(e,t,r){const n=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,n);null!=t&&t!==e&&(r=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",n?'
    '+(r?e:Pg(e,!0))+"
    \n":"
    "+(r?e:Pg(e,!0))+"
    \n"}blockquote(e){return"
    \n"+e+"
    \n"}html(e){return e}heading(e,t,r,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(e,t,r){const n=t?"ol":"ul";return"<"+n+(t&&1!==r?' start="'+r+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,r){if(null===(e=qg(this.options.sanitize,this.options.baseUrl,e)))return r;let n='
    ",n}image(e,t,r){if(null===(e=qg(this.options.sanitize,this.options.baseUrl,e)))return r;let n=''+r+'":">",n}text(e){return e}}class ub{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,r){return""+r}image(e,t,r){return""+r}br(){return""}}class db{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let r=e,n=0;if(this.seen.hasOwnProperty(r)){n=this.seen[e];do{n++,r=e+"-"+n}while(this.seen.hasOwnProperty(r))}return t||(this.seen[e]=n,this.seen[r]=0),r}slug(e,t={}){const r=this.serialize(e);return this.getNextSafeSlug(r,t.dryrun)}}class pb{constructor(e){this.options=e||Fg,this.options.renderer=this.options.renderer||new lb,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ub,this.slugger=new db}static parse(e,t){return new pb(t).parse(e)}static parseInline(e,t){return new pb(t).parseInline(e)}parse(e,t=!0){let r,n,i,o,a,s,c,l,u,d,p,m,h,f,_,g,b,y,v,x="";const N=e.length;for(r=0;r0&&"paragraph"===_.tokens[0].type?(_.tokens[0].text=y+" "+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&"text"===_.tokens[0].tokens[0].type&&(_.tokens[0].tokens[0].text=y+" "+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:"text",text:y}):f+=y),f+=this.parse(_.tokens,h),u+=this.renderer.listitem(f,b,g);x+=this.renderer.list(u,p,m);continue;case"html":x+=this.renderer.html(d.text);continue;case"paragraph":x+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(u=d.tokens?this.parseInline(d.tokens):d.text;r+1{i(e.text,e.lang,(function(t,r){if(t)return a(t);null!=r&&r!==e.text&&(e.text=r,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const r=cb.lex(e,t);return t.walkTokens&&mb.walkTokens(r,t.walkTokens),pb.parse(r,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Pg(n.message+"",!0)+"
    ";throw n}}mb.options=mb.setOptions=function(e){var t;return Yg(mb.defaults,e),t=mb.defaults,Fg=t,mb},mb.getDefaults=Eg,mb.defaults=Fg,mb.use=function(...e){const t=Yg({},...e),r=mb.defaults.extensions||{renderers:{},childTokens:{}};let n;e.forEach((e=>{if(e.extensions&&(n=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=r.renderers?r.renderers[e.name]:null;r.renderers[e.name]=t?function(...r){let n=e.renderer.apply(this,r);return!1===n&&(n=t.apply(this,r)),n}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");r[e.level]?r[e.level].unshift(e.tokenizer):r[e.level]=[e.tokenizer],e.start&&("block"===e.level?r.startBlock?r.startBlock.push(e.start):r.startBlock=[e.start]:"inline"===e.level&&(r.startInline?r.startInline.push(e.start):r.startInline=[e.start]))}e.childTokens&&(r.childTokens[e.name]=e.childTokens)}))),e.renderer){const r=mb.defaults.renderer||new lb;for(const t in e.renderer){const n=r[t];r[t]=(...i)=>{let o=e.renderer[t].apply(r,i);return!1===o&&(o=n.apply(r,i)),o}}t.renderer=r}if(e.tokenizer){const r=mb.defaults.tokenizer||new nb;for(const t in e.tokenizer){const n=r[t];r[t]=(...i)=>{let o=e.tokenizer[t].apply(r,i);return!1===o&&(o=n.apply(r,i)),o}}t.tokenizer=r}if(e.walkTokens){const r=mb.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),r&&r.call(this,t)}}n&&(t.extensions=r),mb.setOptions(t)}))},mb.walkTokens=function(e,t){for(const r of e)switch(t.call(mb,r),r.type){case"table":for(const e of r.header)mb.walkTokens(e.tokens,t);for(const e of r.rows)for(const r of e)mb.walkTokens(r.tokens,t);break;case"list":mb.walkTokens(r.items,t);break;default:mb.defaults.extensions&&mb.defaults.extensions.childTokens&&mb.defaults.extensions.childTokens[r.type]?mb.defaults.extensions.childTokens[r.type].forEach((function(e){mb.walkTokens(r[e],t)})):r.tokens&&mb.walkTokens(r.tokens,t)}},mb.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");eb(t=Yg({},mb.defaults,t||{}));try{const r=cb.lexInline(e,t);return t.walkTokens&&mb.walkTokens(r,t.walkTokens),pb.parseInline(r,t)}catch(r){if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Pg(r.message+"",!0)+"
    ";throw r}},mb.Parser=pb,mb.parser=pb.parse,mb.Renderer=lb,mb.TextRenderer=ub,mb.Lexer=cb,mb.lexer=cb.lex,mb.Tokenizer=nb,mb.Slugger=db,mb.parse=mb,pb.parse,cb.lex;export{Se as A,De as B,ue as C,Cg as D,qu as E,Ae as F,xd as G,yd as H,mb as I,fd as J,le as K,Od as L,$ as N,kd as O,Wu as R,cd as T,x as a,w as b,Ie as c,Oe as d,re as e,ui as f,te as g,ia as h,Ys as i,xr as j,Jd as k,Ne as l,qd as m,Wd as n,Zd as o,Yd as p,X as q,Nt as r,ke as s,rd as t,Cd as u,Ph as v,Vd as w,cg as x,we as y,dg as z}; -//# sourceMappingURL=vendor.482c2e48.js.map diff --git a/assets/vendor.482c2e48.js.map b/assets/vendor.482c2e48.js.map deleted file mode 100644 index 40a85ba9..00000000 --- a/assets/vendor.482c2e48.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vendor.482c2e48.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function x(t,e,i,s){const n=S(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function S(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function B(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function I(t,e,i,s){const n=B(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function y(t,e){try{return t()}catch(t){return e}}var P,E,A,R,N;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(P||(P={}));class C{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=B(t.value,\"Name\",\"string\"),i=y((()=>B(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:B(i,e,\"string\")})),{});return new C(e,s)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=P.readMap(s.Properties,(t=>{var e;return null!==(e=P.readString(t))&&void 0!==e?e:\"\"}));return new C(n,r)}}C.AIR=new C(\"minecraft:air\");class k{constructor(t){this.minY=t,this.storage=Array(k.SIZE),this.palette=[C.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:C.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}k.WIDTH=16,k.SIZE=k.WIDTH*k.WIDTH*k.WIDTH;class T{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:C.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(C.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new k(this.minSection+t)),this.sections[t]}}!function(t){t.create=function(t,e){return[t,e]},t.fromBlockPos=function(t){return[t[0]>>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return t[0]<<19},t.maxBlockZ=function(t){return t[1]<<19}}(E||(E={}));class _{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new C(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]C.fromNbt({name:\"\",value:t}))),s=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:B(t,\"state\",\"int\"),nbt:y((()=>B(t,\"nbt\",\"compound\")),void 0)})));return new _(e,i,s)}}function O(t){return t*t}function M(t,e,i){return Math.max(e,Math.min(i,t))}function L(t,e,i){return e+t*(i-e)}function D(t,e,i,s,n,r){return L(e,L(t,i,s),L(t,n,r))}function U(t,e,i,s,n,r,o,a,l,h,u){return L(i,D(t,e,s,n,r,o),D(t,e,a,l,h,u))}function z(t,e,i){return i<0?t:i>1?e:L(i,t,e)}function j(t){return t*t*t*(t*(6*t-15)+10)}function V(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}class J{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new J(this.nextLong())}setSeed(t){this.seed=t^J.MULTIPLIER&J.MODULUS_MASK}advance(){this.seed=this.seed*J.MULTIPLIER+J.INCREMENT&J.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(J.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^Y.SILVER_RATIO_64,i=e+Y.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[Y.mixStafford13(e),Y.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=Y.upgradeSeedTo128bit(t)}fork(){return new Y([this.next(),this.next()])}static getSeed(t,e,i){let s=t*BigInt(3129871)^i*BigInt(116129781)^e;return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}forkAt(t,e,i){const s=Y.getSeed(t,e,i)^this.seed[0];return new Y([s,this.seed[1]])}static LongfromBytes(t,e,i,s,n,r,o,a){return BigInt(t)<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*Y.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Y.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}Y.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),Y.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),Y.FLOAT_MULTIPLIER=1/Math.pow(2,24),Y.DOUBLE_MULTIPLIER=11102230246251565e-32;class W{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*W.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*W.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+W.G2,c=n-h+W.G2,d=a-1+2*W.G2,f=n-1+2*W.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return z(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=P.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=P.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=P.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=P.readNumber(o.y_factor))&&void 0!==r?r:80}}}(A||(A={}));class G{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new H(t,e,i),this.second=new H(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=P.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class ${constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new W(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new W(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=P.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new q(0);for(const e of h){const s=null!==(r=P.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=P.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(N||(N={}));class q{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class K{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=V(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const Q=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],tt=[124/256,189/256,107/256],et=Q(6396257),it=Q(8431445),st=Q(4764952),nt=Q(4159204),rt=Q(8431445),ot=Q(2129968),at=t=>[t/8,1-t/32,64*t],lt={large_fern:()=>tt,tall_grass:()=>tt,grass_block:()=>tt,fern:()=>tt,grass:()=>tt,potted_fern:()=>tt,spruce_leaves:()=>et,birch_leaves:()=>it,oak_leaves:()=>st,jungle_leaves:()=>st,acacia_leaves:()=>st,dark_oak_leaves:()=>st,vine:()=>st,water:()=>nt,bubble_column:()=>nt,cauldron:()=>nt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),M(e*e*.7-.5,0,1),M(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>tt,attached_melon_stem:()=>rt,attached_pumpkin_stem:()=>rt,melon_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return at(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>ot};var ht;function ut(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function ct(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=ht.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),ct(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=ut(...f);return ct(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new dt(t,e.variants,e.multipart)}}const ft={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},gt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},pt=1.41421356237,mt={x:[1,pt,pt],y:[pt,1,pt],z:[pt,pt,1]};class vt{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:ut(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,w,F;const x=r.from[0],S=r.from[1],B=r.from[2],I=r.to[0],y=r.to[1],P=r.to[2],E=[],A=[],R=[],N=[],C=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,F,x,S]=a.getTextureUV(this.getTexture(i.texture)),B=(x-w)/16,I=(S-F)/16,y=B/16,P=I/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*B+y,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*I+P,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*B-y,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*I-P;const C=ft[null!==(p=i.rotation)&&void 0!==p?p:0];A.push(w+s[C[0]],F+s[C[1]],w+s[C[2]],F+s[C[3]],w+s[C[4]],F+s[C[5]],w+s[C[6]],F+s[C[7]]);const k=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=lt[t.slice(10)])||void 0===v?void 0:v.call(lt,e))&&void 0!==b?b:[1,1,1];R.push(...k,...k,...k,...k),E.push(...n),N.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||C(r.faces.up,[x,16-P,I,16-B],[x,y,P,I,y,P,I,y,B,x,y,B]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||C(r.faces.down,[16-P,16-I,16-B,16-x],[x,S,B,I,S,B,I,S,P,x,S,P]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||C(r.faces.south,[x,16-y,I,16-S],[x,S,P,I,S,P,I,y,P,x,y,P]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||C(r.faces.north,[16-I,16-y,16-x,16-S],[I,S,B,x,S,B,x,y,B,I,y,B]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||C(r.faces.east,[16-P,16-y,16-B,16-S],[I,S,P,I,S,B,I,y,B,I,y,P]),!(null===(F=null===(w=r.faces)||void 0===w?void 0:w.west)||void 0===F?void 0:F.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||C(r.faces.west,[B,16-y,P,16-S],[x,S,B,x,S,P,x,y,P,x,y,B]);const k=s.create();if(s.identity(k),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(k,k,t),s.rotate(k,k,n.toRadian(r.rotation.angle),gt[r.rotation.axis]),r.rotation.rescale&&s.scale(k,k,mt[r.rotation.axis]),i.negate(t,t),s.translate(k,k,t)}const T=new Float32Array(E);return ct(T,k),{position:T,texCoord:A,tintColor:R,index:N}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new vt(t,i,e.textures,e.elements)}}class bt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function wt(t,e,i,s,n){const r=new dt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Ft(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return wt(`minecraft:${t}`,s,e,n,new vt(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const xt={\"minecraft:water\":(t,e,i,s)=>Ft(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Ft(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return wt(\"minecraft:chest\",s,t,{},new vt(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},St=new Set(Object.keys(xt));class Bt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new bt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),ct(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,ut(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,ut(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),St.has(o)&&(l=xt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function It(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class yt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return It(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>It(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new yt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return yt.drawInvalidTexture(e),new yt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Pt,Et,At,Rt,Nt,Ct,kt,Tt,_t;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=P.readArray(t,(t=>P.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=P.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Pt||(Pt={}));class Ot{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=null!==(i=P.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Ot(n)}}class Mt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=P.readObject(t))&&void 0!==e?e:{},n=(null!==(i=P.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=P.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Pt.ParamPoint.fromJson(t.parameters)}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Mt(new Pt.Parameters(n))}}class Lt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return new Lt(N.fromJson(i.offset,this.EXTRACTOR),N.fromJson(i.factor,this.EXTRACTOR),N.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+Lt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new K(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new K(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new K(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Lt(n,r,o)}static getErosionFactor(t,e){const i=new K(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new K(this.EROSION).addPoint(-.6,i).addPoint(-.5,new K(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new K(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new K(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new K(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new K(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new K(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(L(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(L(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,L(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new K(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new K(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new K(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new K(Lt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}Lt.GLOBAL_OFFSET=-.50375,Lt.EXTRACTOR=t=>{var e;const i=null!==(e=P.readString(t))&&void 0!==e?e:\"continents\";return Lt.extractor(i)},Lt.CONTINENTS=Lt.extractor(\"continents\"),Lt.EROSION=Lt.extractor(\"erosion\"),Lt.WEIRDNESS=Lt.extractor(\"weirdness\"),Lt.RIDGES=Lt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Et||(Et={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=P.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=P.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=P.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=P.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:A.fromJson(h.sampling),topSlide:Rt.fromJson(h.top_slide),bottomSlide:Rt.fromJson(h.bottom_slide),terrainShaper:Lt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=P.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=P.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=P.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(At||(At={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=P.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=P.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=P.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return z(t.target,e,s)}}(Rt||(Rt={}));class Dt{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Dt.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=Dt.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.baseNoise=s.makeBaseNoiseFiller(this,o)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}createNoiseInterpolator(t){const e=new Dt(this,t);return this.interpolators.push(e),e}initializeForFirstCellX(){this.interpolators.forEach((t=>t.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Nt||(Nt={}));class zt{constructor(t,e,i,s=!1){if(this.settings=t,s){const s=new J(e);this.blendedNoise=new Z(s.fork(),t.sampling,At.cellWidth(t),At.cellHeight(t)),s.consume(8),this.temperatureNoise=new G(new J(e),i.temperature),this.humidityNoise=new G(new J(e+BigInt(1)),i.humidity),this.continentalnessNoise=new G(new J(e+BigInt(2)),i.continentalness),this.erosionNoise=new G(new J(e+BigInt(3)),i.erosion),this.weirdnessNoise=new G(new J(e+BigInt(4)),i.weirdness),this.offsetNoise=new G(new J(e+BigInt(5)),i.shift),this.jaggedNoise=new G(s.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const s=Y.create(e).fork();this.blendedNoise=new Z(s.forkWithHashOf(\"minecraft:terrain\"),t.sampling,At.cellWidth(t),At.cellHeight(t)),this.temperatureNoise=new G(s.forkWithHashOf(\"minecraft:temperature\"),i.temperature),this.humidityNoise=new G(s.forkWithHashOf(\"minecraft:vegetation\"),i.humidity),this.continentalnessNoise=new G(s.forkWithHashOf(\"minecraft:continentalness\"),i.continentalness),this.erosionNoise=new G(s.forkWithHashOf(\"minecraft:erosion\"),i.erosion),this.weirdnessNoise=new G(s.forkWithHashOf(\"minecraft:ridge\"),i.weirdness),this.offsetNoise=new G(s.forkWithHashOf(\"minecraft:offset\"),i.shift),this.jaggedNoise=new G(s.forkWithHashOf(\"minecraft:jagged\"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=t.terrainShaper,this.baseNoise=t=>{const e=t.createNoiseInterpolator(((e,i,s)=>this.calculateBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)));return()=>e.sample()}}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Ct.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Pt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=Lt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Nt.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e){const i=this.baseNoise(t);return(t,s,n)=>{let r=i();return r=M(.64*r,-1,1),r=r/2-r*r*r/24,r+=e(t,s,n),r>0?null:C.AIR}}calculateBaseNoise(t,e,i,s){let n=this.blendedNoise.sample(t,e,i);if(s){const r=this.sampleJaggedNoise(s.jaggedness,t,i),o=this.computeDimensionDensity(e,s),a=s.factor*(r+o);n+=a>0?4*a:a}return n=M(n,-64,64),n=this.applySlide(n,e/At.cellHeight(this.settings)),n=M(n,-64,64),n}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}applySlide(t,e){const i=e-At.minCellY(this.settings);return t=Rt.apply(this.settings.topSlide,t,At.cellCountY(this.settings)-i),t=Rt.apply(this.settings.bottomSlide,t,i)}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Ct||(Ct={}));class jt{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new zt(i.noise,t,i.octaves,i.legacyRandomSource),this.materialRule=Et.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)])}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=At.cellWidth(this.settings.noise),r=At.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=E.minBlockX(t.pos),u=E.minBlockZ(t.pos),c=new Ut(o,l,a,this.sampler,h,u,(()=>0),this.settings);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;t{var e,i,s;return{distance:null!==(e=P.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=P.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=P.readInt(t.count))&&void 0!==s?s:0}})),structures:P.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=P.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=P.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=P.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=P.readObject(t))&&void 0!==e?e:{})}))}}}(Tt||(Tt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{temperature:R.fromJson(i.temperature),humidity:R.fromJson(i.humidity),continentalness:R.fromJson(i.continentalness),erosion:R.fromJson(i.erosion),weirdness:R.fromJson(i.weirdness),shift:R.fromJson(i.shift)}}}(_t||(_t={}));export{Z as BlendedNoise,lt as BlockColors,dt as BlockDefinition,vt as BlockModel,a as BlockPos,C as BlockState,T as Chunk,E as ChunkPos,k as ChunkSection,Pt as Climate,q as ConstantProvider,r as Direction,Ot as FixedBiome,Ct as FlatNoiseData,X as ImprovedNoise,P as Json,J as LegacyRandom,Et as MaterialRule,Mt as MultiNoise,u as NbtReader,c as NbtWriter,Ut as NoiseChunk,jt as NoiseChunkGenerator,kt as NoiseGeneratorSettings,Dt as NoiseInterpolator,_t as NoiseOctaves,R as NoiseParameters,zt as NoiseSampler,A as NoiseSamplingSettings,At as NoiseSettings,Rt as NoiseSlideSettings,G as NormalNoise,N as NumberProvider,H as PerlinNoise,$ as PerlinSimplexNoise,W as SimplexNoise,K as Spline,_ as Structure,Bt as StructureRenderer,Tt as StructureSettings,Nt as TerrainInfo,Lt as TerrainShaper,yt as TextureAtlas,Y as XoroshiroRandom,V as binarySearch,M as clamp,z as clampedLerp,I as getListTag,y as getOptional,B as getTag,L as lerp,D as lerp2,U as lerp3,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,j as smoothstep,O as square,h as tagNames,l as tagTypes,w as write,x as writeChunk,b as writeCompressed,F as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n blockquote(quote) {\n return '
    \\n' + quote + '
    \\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","idx","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","marker","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","arrow","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","markers","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","writable","configurable","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","col","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","tmp","self2","$0","$1","$2","codePoint","RegExp","exception2","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","lang","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","Tokenizer2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","numberIsNaN","fromObject","toPrimitive","array2","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","found","remaining","strLen","parsed","blitBuffer","byteArray","asciiToBytes","units","hi","lo","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","console","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","slowToString","toLocaleString","inspect","INSPECT_MAX_BYTES","trim","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","toJSON","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","re","POWERS_OF_TEN","results","log10","al","bl","aStr","bStr","runHi","pivot","pivotIndex","mid","hint","lastOffset","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","cursor2","dest","count1","count2","customCursor","customDest","src","alphabeticalCompare","makeAscendingRun","ts","TimSort","minRun","minRunLength","force","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","define","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","remove","move_comments","ii","remove_comments","begin","deleteCount","item_length","CommentArray","before","items_length","reverse","map2","source_index","real_source_index","mapped","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","tt","started","walk","parse_object","parse_array","negative","cache","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\"","\\","quote","lastIndex","process_comments","host","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","indent","one","two","gap","trimRight","join_content","inside","object_stringify","after_comma","sv","AFTER_COLON","holder","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","indent2","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","include","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","mapping","collectType","compileMap","Schema","DEFAULT","types","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","getTime","toISOString","NodeBuffer","merge","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pair","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","global","multiline","ignoreCase","_function","err2","Function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","lineIndent","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startLine","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","tagName","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","extend","ESCAPE_SEQUENCES","7","8","9","10","11","12","13","27","34","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","character","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","spaces","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","width","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","S","displayName","isReactComponent","__f","isPureReactComponent","__u","__R","__O","delete","revealOrder","F","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","selected","defaultValue","className","$$typeof","performance","now","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","walkTokens","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","stop","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","ua","userAgent","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_emit","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","_seek","timeout","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","once","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","readyState","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","fade","linearRampToValueAtTime","_startFadeInterval","isGroup","diff","steps","stepLen","lastTick","_fadeTo","setInterval","tick","round","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","cache2","on","events","off","isId","task","_drain","cnt","_panner","isIOS","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","ceil","__default","loadBuffer","atob","dataView","XMLHttpRequest","open","responseType","setRequestHeader","response","onerror","safeXhrSend","send","decodeAudioData","arraybuffer","success","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","platform","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","'","getEscapeReplacement","html","unescapeTest","substring","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","link","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","top","spacers","hasMultipleLineBreaks","chars","pre","def","splitCells","align","rows","row","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","edit","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","content","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","cell","itemBody","checkbox","renderers","tablecell","tablerow","listitem","callback","marked","setOptions","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"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,cA3CYpc,EAAG0O,WAClB6H,EAAOzL,OAAOyL,KAAKvW,GACnB0c,EAAK,IAAIhc,MAAM6V,EAAK/Y,QACfhB,EAAI,EAAGA,EAAI+Z,EAAK/Y,OAAQhB,IAAK,KAChC4D,EAAImW,EAAK/Z,GACT6f,EAAMrc,EAAEI,GACO,iBAARic,GAA4B,OAARA,IAC1Bjc,GAAKic,EACCA,aAAeL,OACrB5b,GAAK,IAAI4b,KAAKK,GACRC,YAAYC,OAAOF,KACzBjc,GAAKoc,GAAWH,KAEhBjc,GAAKsO,EAAG2N,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAOvM,KAAKgM,GAGd,IAAIA,EAAI7d,YAAY6d,EAAIQ,OAAOlb,QAAS0a,EAAIS,WAAYT,EAAI7e,wBCPrEsN,OAAOsC,eAAe2P,GAAS,aAAc,CAAEhc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACToD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCtRD5P,iBAAwB,aAAc,CAAErM,OAAO,wBAC1BmS,QAAgBA,sBAAyB,QAC/D+J,EAAS1M,gCACY8I,EAASO,SAC1BsD,EAAaD,EAAO1D,WAAWlT,UAAK,EAAWuT,GAC/CuD,EAAYF,EAAO7D,UAAU/S,UAAK,EAAWgT,KAC3C2D,SAAS,cAAeC,EAAOjJ,IAAIiJ,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAEvD,UAAW,WAAYvK,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A,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mB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,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,2BCpkBRlS,OAAOsC,eAAeuW,GAAS,aAAc,CAAE5iB,OAAO,mCACrB,EACjC,MAAM6iB,GAASrT,6BACf,SAAgC8I,EAASO,SAC/BuD,EAAYyG,GAAOxK,UAAU/S,UAAK,EAAWgT,GAC7C6D,EAAa0G,GAAOrK,WAAWlT,UAAK,EAAWuT,GAC/Cif,EAAkBjV,GAAO1N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAMwa,GAAOrG,IAAIJ,EAAU,qBAC3BhH,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAVzO,EAAE,UAAuB,IAAPwM,OAAgB,EAASA,EAAGuP,iBAA8B,IAAPtN,EAAgBA,EAAM,KAE7I,CACIhT,KAAM,OACNuL,KAAMwa,GAAOtP,SAAS6I,EAAU,cAChChH,UAAa,CAAC,CACN6U,UAAW,8BACX7M,UAAW/b,MAGxB,CAAE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m2B,4BAA+B/pB,OAAU,SAAS3N,EAAGgF,UACjFgL,eAAehQ,EAAG,UAAW,CAAEwd,YAAY,EAAM7Z,MAAOqB,KAC9D,SAAShF,EAAGgF,aACEA,IAEf2yB,GAAgBp2B,IAAQA,GAAKo2B,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BxE,EAAS,MACF,MAAPwE,UAAsB50B,KAAK40B,EAAe,YAAN50B,GAAmB0K,OAAOiQ,eAAe1W,KAAK2wB,EAAK50B,OAAoBowB,EAAQwE,EAAK50B,aACzGowB,EAAQwE,GACpBxE,GAEX1lB,OAAOsC,eAAe8nB,GAAS,aAAc,CAAEn0B,OAAO,IACtD,4CAA8C,EAC9C,MAAM6iB,GAASrT,GACT4kB,GAAgB3kB,GAChB4kB,GAAY1kB,GAClB,sBAAsBqkB,GAAavd,IAMnC,yBALA,iBACUoC,EAAc,IAAIgK,GAAOyR,6BACjBC,gBAAgB1b,GACvBA,GAsBX2b,iBALA,SAAoB3b,SACVP,EAAU,IAAIuK,GAAO4R,yBACjBC,YAAYpc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe2P,GAAS,aAAc,CAAEhc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACToD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAE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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 428bc051..80de1817 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -17,11 +17,11 @@ - Technical Changelog Minecraft 1.16, 1.17, 1.18 + Technical Changelog Minecraft 1.17, 1.18, latest - - + + diff --git a/dimension-type/index.html b/dimension-type/index.html index 6904fe47..33208394 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -17,11 +17,11 @@ - Dimension Type Generator Minecraft 1.16, 1.17, 1.18 + Dimension Type Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/dimension/index.html b/dimension/index.html index d20ad473..f0c3470e 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -17,11 +17,11 @@ - Dimension Generator Minecraft 1.16, 1.17, 1.18 + Dimension Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/index.html b/index.html index 46c0c02e..d86ee39b 100644 --- a/index.html +++ b/index.html @@ -20,8 +20,8 @@ Data Pack Generators Minecraft 1.15, 1.16, 1.17 - - + + diff --git a/item-modifier/index.html b/item-modifier/index.html index d143a7c7..fa5a4164 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -17,11 +17,11 @@ - Item Modifier Generator Minecraft 1.17, 1.18 + Item Modifier Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/loot-table/index.html b/loot-table/index.html index 7f080d3a..ede693e7 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -17,11 +17,11 @@ - Loot Table Generator Minecraft 1.16, 1.17, 1.18 + Loot Table Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/predicate/index.html b/predicate/index.html index 29bb6c1d..68c3489d 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -17,11 +17,11 @@ - Predicate Generator Minecraft 1.16, 1.17, 1.18 + Predicate Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/recipe/index.html b/recipe/index.html index b33159c0..dc45d529 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -17,11 +17,11 @@ - Recipe Generator Minecraft 1.16, 1.17, 1.18 + Recipe Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/sounds/index.html b/sounds/index.html index 579e4419..031ac031 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -17,11 +17,11 @@ - Sound Explorer Minecraft 1.16, 1.17, 1.18 + Sound Explorer Minecraft 1.17, 1.18, latest - - + + diff --git a/world/index.html b/world/index.html index 83ba9fce..145834f1 100644 --- a/world/index.html +++ b/world/index.html @@ -17,11 +17,11 @@ - World Settings Generator Minecraft 1.16, 1.17, 1.18 + World Settings Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index cc95b08b..ce650bb3 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -17,11 +17,11 @@ - Biome Generator Minecraft 1.16, 1.17, 1.18 + Biome Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index 00ad753e..dd6e1796 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -17,11 +17,11 @@ - Carver Generator Minecraft 1.16, 1.17, 1.18 + Carver Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 7fd6aec0..8acee06e 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -17,11 +17,11 @@ - Feature Generator Minecraft 1.16, 1.17, 1.18 + Feature Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/index.html b/worldgen/index.html index dcadc8d1..ad63bf21 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -17,11 +17,11 @@ - Worldgen Generators Minecraft 1.16, 1.17, 1.18 + Worldgen Generators Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index c93587c1..cd2aa2dd 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -17,11 +17,11 @@ - Noise Settings Generator Minecraft 1.16, 1.17, 1.18 + Noise Settings Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 51b8ddb8..bc18e2dd 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -17,11 +17,11 @@ - Noise Generator Minecraft 1.18 + Noise Generator Minecraft 1.18, latest - - + + diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index 5bb9e7e1..c3215688 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -17,11 +17,11 @@ - Placed Feature Generator Minecraft 1.18 + Placed Feature Generator Minecraft 1.18, latest - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index bcc84388..3ea50508 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -17,11 +17,11 @@ - Processor List Generator Minecraft 1.16, 1.17, 1.18 + Processor List Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 19a69f7f..4ac3210a 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -17,11 +17,11 @@ - Structure Feature Generator Minecraft 1.16, 1.17, 1.18 + Structure Feature Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 04c4a2a4..a96fce47 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -17,11 +17,11 @@ - Surface Builder Generator Minecraft 1.16, 1.17, 1.18 + Surface Builder Generator Minecraft 1.17, 1.18, latest - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 1299c89e..ff7e7c14 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -17,11 +17,11 @@ - Template Pool Generator Minecraft 1.16, 1.17, 1.18 + Template Pool Generator Minecraft 1.17, 1.18, latest - - + +